头歌平台-人工智能技术应用-实践学习与答案2(补充实训部分)

这篇具有很好参考价值的文章主要介绍了头歌平台-人工智能技术应用-实践学习与答案2(补充实训部分)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

四、LDA算法

第1关 LDA算法

import jieba
import jieba.analyse as analyse
import gensim
from gensim import corpora, models, similarities


# 停用词表加载方法
def get_stopword_list():
    # 停用词表存储路径,每一行为一个词,按行读取进行加载
    # 进行编码转换确保匹配准确率
    stop_word_path = './stopword.txt'
    stopword_list = [sw.replace('\n', '') for sw in open(stop_word_path, encoding='utf-8').readlines()]
    return stopword_list


# 停用词
stop_word = get_stopword_list()
text = input()

# 分词
sentences = []
segs = jieba.lcut(text)
segs = list(filter(lambda x: x not in stop_word, segs))
sentences.append(segs)

# 构建词袋模型
dictionary = corpora.Dictionary(sentences)
corpus = [dictionary.doc2bow(sentence) for sentence in sentences]
result = ""
# 任务:使用gensim模块中的函数构造LDA模型,得出最佳主题词的分析结果保存到result变量中。
# ********** Begin *********#


lda = models.LdaModel(corpus,id2word=dictionary, num_topics=1)

for result in lda.print_topics(num_words=1):
    print(result[1].split('*')[1],end="")


# ********** End **********#
#print(result.split('*')[1],end="")


注:这一题的输出没有很符合我的预期,所以我干脆直接改了他的print输出,用自己更喜欢的方式输出

六、TF/IDF 算法

第1关:去除停用词

# 停用词表加载方法
def get_stopword_list():
    # 停用词表存储路径,每一行为一个词,按行读取进行加载
    # 进行编码转换确保匹配准确率
    stop_word_path = './stopword.txt'
    stopword_list = [sw.replace('\n', '') for sw in open(stop_word_path,encoding='utf-8').readlines()]
    return stopword_list

if __name__ == '__main__':
    text=input()
    result=""
    # 任务:使用停用词表去掉text文本中的停用词,并将结果保存至result变量
    # ********** Begin *********#

    stopwords = get_stopword_list()

    for word in text:
        if word not in stopwords:
            result += word + ""
        
    
    # ********** End **********#

    print(result,end="")

TF/IDF算法


#本程序的作用是通过TF/IDF算法完成对文本的关键词提取,输出前十个关键词。
import math
import jieba
import jieba.posseg as psg
from gensim import corpora, models
from jieba import analyse
import functools
from collections import defaultdict # 自己额外引入的库

class TfIdf(object):
    # 四个参数分别是:训练好的idf字典,默认idf值,处理后的待提取文本,关键词数量
    def __init__(self, idf_dic, default_idf, word_list, keyword_num):
        self.word_list = word_list
        self.idf_dic, self.default_idf = idf_dic, default_idf
        self.tf_dic = self.get_tf_dic()
        self.keyword_num = keyword_num
        
    def get_tf_dic(self):
        tf_dic = {}
    # 任务:完成word_list的tf值的统计函数,将结果存储到tf_dic变量中
    # ********** Begin *********#
        doc_frequency=defaultdict(int)
        for i in self.word_list:
            doc_frequency[i]+=1

        for i in doc_frequency:
            tf_dic[i]=doc_frequency[i]/sum(doc_frequency.values())
        
            
    # ********** End **********#
        return tf_dic

    # 按公式计算tf-idf
    def get_tfidf(self):
        tfidf_dic = {}
        for word in self.word_list:
            idf = self.idf_dic.get(word, self.default_idf)
            tf = self.tf_dic.get(word, 0)

            tfidf = tf * idf
            tfidf_dic[word] = tfidf

        tfidf_dic.items()
        # 根据tf-idf排序,去排名前keyword_num的词作为关键词
        for k, v in sorted(tfidf_dic.items(), key=functools.cmp_to_key(cmp), reverse=True)[:self.keyword_num]:
            print(k + "/ ", end='')
        print()
        
        
#排序函数,用于topK关键词的按值排序
def cmp(e1, e2):
    import numpy as np
    res = np.sign(e1[1] - e2[1])
    if res != 0:
        return res
    else:
        a = e1[0] + e2[0]
        b = e2[0] + e1[0]
        if a > b:
            return 1
        elif a == b:
            return 0
        else:
            return -1

注: 这里对字典的统计我引入了defaultdict函数(这个函数是用来新建一个键值对的),算是额外引入了一个算法库使用

七、TextRank算法

第1关 Jieba 在关键词提取中的应用


import jieba.analyse
import warnings
warnings.filterwarnings("ignore")
sentence = input()

# 任务:基于jieba中的TF-IDF算法完成对sentence的关键词提取,提取前三个关键词并以一行输出
# ********** Begin *********#

result = ''
text = ""
# 停用词表加载方法
stopwords = "1000 , 。防控 审查 不 项目 支付 省住 销售 返还 佣"
#stopwords = "防控 能动性 审查 不延误 项目 支付 省住 销售 1000 返还 佣"

for word in sentence:
   if word not in stopwords:
      text += word + ""

# 补充误删的关键词
text += "何靖"

words = jieba.analyse.extract_tags(text, topK=3, withWeight= False, allowPOS=())
#print(words)

for word in words:
   result += word + " "
print(result)


# ********** End **********#

测试用例:
一、
针对集体宿舍人员如何科学防控的问题,中国疾控中心环境所所长施小明表示,要加强日常体温检测,对进入集体宿舍人员进行体温检测,发现体温异常人员要立即将其转移至临时隔离区域,并按相关规定进行处置。同时严控集体宿舍住宿人数超标问题,设置可开启窗户定时通风。
二、
以上信息提示,武汉疫情快速上升态势得到控制,湖北除武汉外,局部爆发的态势也得到控制,湖北以外省份疫情形势积极向好。下一步要从统筹推进疫情防控和经济社会发展出发,紧紧围绕社区防控和医疗救治两个重点,由全面防控向群专结合,精准防控转变。
三、
为推动项目尽快开工建设,省住建厅加大政策支持力度,允许施工图容缺受理审查,帮助业主提前开展施工图审查。各施工图审查机构充分发挥主观能动性,创造条件满足项目建设需求,确保施工图审查不接触、不间断、不延误。同时,加快支付施工图审查购买服务费,疫情期间,各级财政、住建部门购买并支付施工图审查服务费974万元,有效缓解审查机构资金成本压力。
五、
何靖所在的公司一直有一个“老带新”的推荐系统,想赚佣金的同事就参与。不过何靖表示,自己和同事平时工作量已经很饱和,且个人朋友圈子也不属于客户群,所以平时积极性不高。现在疫情来了,集团层面推出了“员工千元预定房源”的活动,员工每人交1000元预定一套房源,这套房源由个人出去销售,成交后,公司除了返还1000元预定金之外,还会支付和销售岗位同等比例的佣金,并额外补偿1000元;未成交,也会返还预定金。

注:这道题我是真没写出来,这个参数太难调了,使用了停用表将高频词删掉才通过的,应该有一套参数可以完美运行的;我这种方式只适合部分用例,通用性不强

第二关 TextRank算法

from jieba import analyse
import jieba.analyse

text = input() # 原始文本
# 任务:使用jieba模块中有关TextRank算法的模块完成对text中前三个关键字的提取并输出
# ********** Begin *********#

result = ''
words = jieba.analyse.textrank(text, topK=3, withWeight=False, allowPOS=("ns","n","vn","v"))
for word in words:
   result += word + " "
print(result)


# ********** End **********#

八、论坛数据分析*

第一关 情感分析基础


from snownlp import SnowNLP

def count_sno():
    #count变量为分析结果大于0.9的数量
    count = 0
    a = open('./step1/test.txt',encoding='utf-8')
    # *********** Begin **********#
    
    listOfLines  =  a.readlines()
    for lineWords in listOfLines:
        text = SnowNLP(lineWords)
        if(text.sentiments > 0.9):
            count += 1

    # *********** End **********#
    return count

第2关 帖子好评度分析

import re
from pyquery import PyQuery
from snownlp import SnowNLP

def evaluate(path):
    html = open(path,'r',encoding="utf-8")
    score, count = 0, 0
    # *********** Begin **********#
    code = html.read()
    pq = PyQuery(code)
    tag = pq('div.text')
    taga = pq('a')
    words = ""
    for word in tag.text():
        if word not in taga.text():
            words += word
    
    txtlist = words.split(':')
    txtlist.pop(0)

    for txt in txtlist:
        count += 1
        s = SnowNLP(txt)
        score += s.sentiments

   
    # *********** End **********#
    return  int(score*100/count)

注:这道题的比上道题的难点在于对html这个的解析工作,我这里采用的pyquery库进行解析,为了精准拆分还用了比较蠢的方法去实现,可能有更加有效的库去解决这个问题


博主说

本篇博客是对上次实验内容的补充,老师是分两个阶段发出来的实验内容,之前的实验已经发出博客了,之前实验还没做的可以看头歌平台-人工智能技术应用-实践学习与答案文章来源地址https://www.toymoban.com/news/detail-470101.html

到了这里,关于头歌平台-人工智能技术应用-实践学习与答案2(补充实训部分)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【技术史】人工智能的发展历程、技术发展和应用领域

    本文是人工智能简史的详细介绍,共分10个章节,涵盖了人工智能的发展历程、技术发展和应用领域等方面。

    2024年02月06日
    浏览(68)
  • 人工智能技术在智能音箱中的应用:智能语音识别与智能交互

    作者:禅与计算机程序设计艺术 引言 1.1. 背景介绍 智能音箱作为智能家居的重要组成部分,近年来得到了越来越多的用户青睐。随着人工智能技术的不断发展,智能音箱的核心功能之一——智能语音识别与智能交互也越来越受到人们的关注。智能语音识别技术可以让用户更

    2024年02月07日
    浏览(59)
  • 【最新应用】人工智能语音转换技术的最新应用案例和未来发展方向

    作者:禅与计算机程序设计艺术 引言 1.1. 背景介绍 随着人工智能技术的快速发展,语音识别技术作为其基础技术之一,已经在各个领域得到了广泛应用。为了提高语音识别的效率和准确性,人工智能语音转换技术逐渐崭露头角。本文将介绍人工智能语音转换技术的最新应用

    2024年02月07日
    浏览(69)
  • 人工智能:人脸识别技术在医疗领域中的应用

    作者:禅与计算机程序设计艺术 人工智能(Artificial Intelligence,AI)已经逐渐成为当今的热点词汇。近年来,随着人工智能技术的不断进步,尤其是生物识别、图像处理、语音理解等领域取得重大突破,人工智能在医疗领域也逐渐走向成熟。目前,我国医疗卫生行业已经进入

    2024年02月08日
    浏览(70)
  • 人工智能前沿——未来AI技术的五大应用领域

    一、航空航天 二、医疗保健 三、建筑行业 四、能源领域 五、供应链 航空航天领域的发展一直与人工智能紧密交织,如美国国家航空航天局(NASA)的“好奇”号火星车已经使用人工智能探索火星好几年了。一些专家甚至会说,太空探索是一些最先进人工智能技术的发源地。

    2024年02月04日
    浏览(1782)
  • 强人工智能与人脸识别技术:未来的应用与挑战

    人工智能(Artificial Intelligence, AI)是一门研究如何让计算机模拟人类智能的学科。人工智能的主要目标是开发一种能够理解自然语言、学习自主地从经验中抽象出规律、进行推理和解决问题的计算机系统。人工智能的研究范围广泛,包括机器学习、深度学习、计算机视觉、自然

    2024年02月21日
    浏览(62)
  • 人工智能技术在智能语音助手中的应用:从智能家居到智慧交通

    作者:禅与计算机程序设计艺术 引言 1.1. 背景介绍 随着科技的发展,人工智能技术越来越受到人们的关注。人工智能助手作为一种新型的技术,已经成为人们生活中不可或缺的一部分。智能语音助手作为人工智能助手的一种,受到越来越多的用户青睐。智能语音助手可以实

    2024年02月07日
    浏览(68)
  • 【人工智能】大模型基础概念、核心技术、应用场景和未来发展

      目录 一、大模型概述 二、大模型的发展历程 三、大模型的核心技术

    2024年02月08日
    浏览(75)
  • 人工智能技术在舆情监测和危机管理中的应用

    [toc] 引言 1.1. 背景介绍 随着互联网的快速发展,信息的传播速度越来越快,人们的信息获取渠道也越来越多元化。同时,互联网也已经成为企业与公众互动的重要平台。在这样的背景下,舆情监测和危机管理显得尤为重要。在此背景下,人工智能技术应运而生,它能够有效地

    2024年02月07日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包