(十五)写在最后——课程总结和个人体会

Hidden Markov Models Fundamentals 隐性马尔科夫模型 论文心得 对自己研究的帮助 求解因变量,解决非凸问题帮助很大 大概框架 摘要 我们如何将机器学习应用于表示为一系列观察结果的数据?马尔可夫模型是一种关于状态随时间推移的推理形式,隐马尔可夫模型是我们希望从一系列观察中恢复一系列状态的模型。 马尔可夫模型 假设一组状态S = {s1,s2,...s|S|},我们可以观察一个时间序列z ∈ST。例如,我们可能有来自天气系统S = {太阳,云,雨}的状态,其中|S| = 3,并观察几天的天气{z1= ssun,z2= scloud,z3= scloud,z4.. 阅读详情

2021SC@SDUSC

前言

经过本学期的软件工程创新实践这门课程,我对一次完整的科研活动有了初步的了解。在完成这项项目期间,学习了与自然语言处理相关的诸多知识,包括但不限于word2vec、马尔可夫过程、隐马尔可夫链、PageRank算法;同时对nlp领域的常见工具包有了初步的了解并学会了基本的使用方法,例如nltk、StandfordNLP、jieba分词;为了完成项目,还了解了多种实用工具,如docker(运行StandfordNLP)、Scrapy(爬取百度学术数据集)、neo4j(知识图谱制作)、redis(储存为爬虫构造的代理池)等。

本篇博客将对这门课程进行总结,同时记录自己的心得体会。

完成了什么

1.论文解读:PositionRank: An Unsupervised Approach to Keyphrase Extractionfrom Scholarly Documents
(二)PositionRank: An Unsupervised Approach to Keyphrase Extractionfrom Scholarly Documents解读一
(六)PositionRank: An Unsupervised Approach to Keyphrase Extractionfrom Scholarly Documents解读二

2.PositionRank代码分析
(三)Position Rank代码解读(一)
(七)PositionRank代码分析(二)
(八)PositionRank代码解读(三)
(十二)PositionRank代码解读(四)

3.PositionRank部署与调试
(四)在项目原数据集上运行Position Rank代码存在的问题

4.爬取数据集;修改PositionRank源码,引入StandfordNLP,使之支持中文处理。
(五)爬取项目数据集
(九)将PositionRank模型运行到给定数据集上(一)
(十)将PositionRank模型运行到给定数据集上(二)
(十一)将PositionRank模型运行到给定数据集上(三)
(十三)将PositionRank模型运行到给定数据集上(四)
(十四)在百度学术中文数据集上运行PositionRank获取最终实验结果

学到了什么

(这里只总结之前博客没有提到的部分知识)

1.word2vec

PositionRank没有word2vec的过程,但是作为自然语言处理的重要环节,文本向量化是每一位初学者都应该掌握的知识。

学习过程中读到的最深入浅出的文章是1411.2738.pdf (arxiv.org)

在刚开始接触word2vec时,我通过很多博客对该模型的架构、训练方法有了一定的了解,但不理解为什么该模型可以实现良好的文本向量化效果(即缩短编码长度、向量距离代表语义相似度),而这篇文章对于word2vec的精髓的讲解十分到位。

word2vec有两大模型:skip gram和CBOW,前者是通过(中心词,上下文)训练,后者通过(上下文,中心词)训练,上面提到的那篇文档对两种方式有很细致的说明。

接下来以skip-gram为例,介绍word2vec有效的原因(即为什么可以缩短编码长度、向量距离代表语义相似度)。

skip-gram基本模型如下

这是一个语言模型,输入中心词X预测中心词的可能上下文Y,通俗来讲就是X和Y在一起是人可以理解的内容。但我们训练这个模型的目的不是用来预测Y,而是通过该模型的参数矩阵(下面的W)实现文本向量化。

skip gram基于一个假设:相关的中心词会得到类似的上下文。例如:

软件园(X)是山东大学的一个校区(Y)。

兴隆山(Z)是山东大学的一个校区(Y)。

X和Z得到了相似的Y,因此我们认为X和Z具有相关性。

这一点是很容易理解的,但是word2vec是如何实现结果的相似性反映到输入的相关性的呢?

X:输入词的one-hot编码(1*V)

Y:预测结果的one-hot编码(1*V)
在这里插入图片描述

由于one-hot编码只有一个元素非零,因此和变化矩阵W相乘以后,相当于将W的某一行提取的出来。即每个one-hot编码和W中的某一行一一对应。W通常是一个50-300维的向量,因此存在两行相同的概率趋近于0,可以认为这是一个双射关系。

通过乘以W,实现了对于输入编码的降维,解决了缩短编码长度的问题。

随后将结果矩阵H(1*N)乘以矩阵W‘(N*V),得到结果Y(1*N)。

我们计算两个H向量之间的相似度(H和X一一对应,因此相当于两个X之间的相似度)
在这里插入图片描述

可以看到H之间的相似度等于Y之间的相似度乘以一个常数,因此对于相近的语义信息(Y之间的相似度高),其向量表示(H)的相似度也就越高。

从而解决了第二个问题:向量距离代表语义相似度。

2nlp的预处理

文档解析、词条化(Tokenlizer)、词项归一化、词干还原(Stem)、词形归并、去除停用词(stopwords)、词性标注(pos)。

在常见的nlp工具包中都有实现上述功能的相应方法,其中nltk和standfordNLP中很多方法的名字和参数完全相同。

3隐马尔可夫链

学习PageRank时有提到迭代过程其实是一个马尔可夫过程。而马尔可夫过程是一个可观测状态,如果该状态是由一个隐含状态通过一个发射概率计算得到,那么隐含状态构成一个隐马尔可夫链。简而言之,直观上感觉每个可观测状态之间是相互转换的,但其实可能是隐含状态相互转换,然后隐含状态通过概率反映到可观测状态上(即可观测状态之间没有直接联系)

(很常见的一个例子如下图)

img

img

img

可以参考这篇博客关于隐马尔可夫链定义和基本结构的讲解:(92条消息) 隐马尔可夫模型(HMM)详解_Robin Hu的专栏-优快云博客_隐马尔可夫模型

其中预测问题使用的viterbi算法可以参考(例子通俗易懂,但是概率的表示不严谨):(92条消息) 简单理解viterbi算法_zhangduan8785的博客-优快云博客_viterbi算法

个人体会

1.刚拿到题目时十分惶恐,很大一部分原因是之前从来没有阅读过全英论文,更没有修改过论文提到的方法为自己所用。但经过论文分析-代码解读以后,我对论文中提到的方法以及其实现有了全面的认识,对代码的修改也就水到渠成。因此在遇到难题时我们可以将问题分解成一些子问题,逐个攻破,难题便迎刃而解。

2.在本学期之前,我常常遇到问题打退堂鼓,对于那些在网上找不到解决方法的问题,我也默认自己解决不了。现在想想其实自己从未有过尝试解决问题,我需要克服的不是问题本身,而是自己的懒惰与不自信。

3.我很享受这种发现问题-简化问题-解决问题的过程,尤其是意识到一个问题有很多解决方法以后去分析比较方法优劣,然后选择最优方法的思考过程。这门课给我带来的最大收获不是对PositionRank的论文、代码结构有多么全面的认识,而是收获了面对问题不退缩的勇气和解决问题的智慧,我相信收获的这些特质终会在未来的某一天发光发热。

版图视频课程新增--第十五讲 Calibre LVS常见错误解析 经过长达一年时间的课件准备,以及近半年的视频录制,剪辑,视频课程:CMOS模拟集成电路设计,终于走到了完结篇! 感谢各位同学长久以来的支持!经过近一年多的努力,目前 网易云课堂网校(集成电路设计那些事儿),已经有了六门课程,涵盖 CMOS模拟集成电路设计,版图,PCB设计,高等数学等。链接如下: CMOS模拟集成电路设计课程链接:(已完结) https://study.163.com/course... 阅读详情

相关推荐

C#大作业源码及课程报告(十五子游戏)

安卓精品项目源码 645

马尔科夫链学习心得

马尔科夫链学习心得 #只是喜欢分享一些可能会对大家学习某个知识有帮助的心得,不会去复制百度上就能查到的概念之类的,本人也很大概率有错误,敬请指正,一起学习,一起进步!# 一、定义 马尔科夫链模型可用来求取只与现在时刻有关的未来时刻的概率,说起来可能有点绕,举个例子,你打牌的时候打完这一把还有多少钱和你上一把之前有多少钱没有关系。 二、建模需要了解的基础知识 1.转移矩阵的概念 大家可以去自行百度,但我今天百度的时候发现词条里举的例子有点问题,已经提交修改申请了 一开始看转移矩阵可能不知道如何下手,只需要记住

youzhiqingnian23的博客 1059

某航某个大作业:十五数码A*算法,Python实现

引言 十五数码问题来源于美国的科学魔术大师萨姆·洛伊德,洛伊德的发明其实只是将重排九宫(即八数码问题)中的3 阶方阵扩大到4 阶方阵罢了。由于这个细微的变化,十五数码问题的规模远远大于八数码问题,八数码问题的规模较小,总的状态数为9!=362880个,而十五数码的状态数有16!约为20.9×〖10〗^12。状态数相差了8个数量级。 解的存在性(可达性) 如果一对数的前后位置与大小顺序相反,即前面...

Ta_Ex_的博客 5793

对马尔可夫链(Markov Chain, MC)的学习

满足当前时间之后的状态只与当前有关,与过去无关的性质称为马尔可夫性。 随机过程满足马尔可夫性则称为马尔可夫过程。   当了解完马尔可夫性后,下面来说说马尔可夫链。马尔可夫链(Markov Chain, MC)是概率论和数理统计中具有马尔可夫性质且存在于离散的指数集和状态空间内的随机过程。 它具有三个核心要素:      1.状态空间 States Space      2.无记忆性 Memorylessness      3.转移矩阵 Transition Matrix ​  若一个马尔可夫链..

qq_41343328的博客 5347

数字图像处理课程设计题目和要求

对象与场景融合是图像融合的一个应用方向,它是指把感兴趣的目标对象从它原来所在的场景中分割出来后,通过叠加、组合和加工处理合成到另一个场景中去,所形成的新的对象场景图像看起来必须是真实自然的,从而创造出新的图像效果。静态手势是手的一种特殊形状或姿势,对应着模型参数空间里一个点,静态手势识别就是对从图像中检测出来的人手区域做分析,识别其中的形状和姿势信息。密度的大小,直接影响织物的外观,手感,厚度,强力,抗折性,透气性,耐磨性和保暖性能等物理机械指标,同时他也关系到产品的成本和生产效率的大小。

weixin_50928346的博客 2970

(二十五)操作系统--读者·写者问题

读者-写者问题为我们解决复杂的互斥问题提供了一个参考思路。其核心思想在于设置了一个计数器count用来记录当前正在访问共享文件的读进程数。我们可以用count的值来判断当前进入的进程是否是第一个/最后一个读进程,从而做出不同的处理。另外,对 count变量的检查和赋值个能一气呵成导致了一些错误,如果需要实现“一气呵成”,自然应该想到用互斥信号量。有读者和写者两组并发进程,共享一个文件,当两个或两个以上的读进程同时访问共享数据时不会产生副作用,但若某个写进程和其他进程(读进程或写进程)同时访问共享数据时则可能

m0_56517198的博客 1628

论文 简单的多数据集检测 Simple multi-dataset detection

https://arxiv.org/pdf/2102.13086.pdf 我们如何建立一个通用和广泛的目标检测系统?我们使用所有标注过的概念的所有标签。这些标签跨越具有潜在不一致分类的不同数据集。在本文中,我们提出了一种在多个大规模数据集上训练统一检测器的简单方法。我们使用特定于数据集的训练协议和丢失,但与特定于数据集的输出共享一个通用的检测体系结构。我们展示了如何将这些特定于数据集的输出自动集成到通用语义分类中。与以前的工作相比,我们的方法不需要手动分类协调。我们的多数据集检测器在每个训练域上的性能与特定

q742971636的博客 1800

SAP中错记虚拟利润中心的调整,冲销处理实例

我非CO专业顾问。工作中遇到的问题,也会找资料,分析,测试。有时这个过程会拿到结果,解决问题。遂将过程记录下来备查。读者请谨慎参考!EC-PCA: 利润中心记账流程_9ke0-优快云博客。

专注SAP应用技术文章写作,致力于拉近用户与系统间的距离; 1795

学计算机这么课最大的收获是啥,学习软件工程课程的收获和体会

学习软件工程这门课程已经有一个学期了,整一个学期下来,应该说还是有许多值得肯定的地方的,其实在我看来,软件工程与其说是一门课程,不如说是一门思想。是一个如何去分析和处理问题的过程,应该说其范畴已经远远不止局限于该门课程,成为了一个综合的一个能够解决问题的思想集合。在上课的时候我还是很认真地去听老师所讲述的内容的,我觉得他的思想和我一向而来的培养计算机学生综合素质的理解还是在一定程度上不谋而合了,所...

weixin_32299949的博客 429

别再死记硬背了!用一张时序图彻底搞懂Setup和Hold检查的本质

本文深入解析数字IC设计中的Setup和Hold时序检查原理,通过波形图直观展示数据在触发器间的传递过程。详细讲解Setup检查为何关注前一周期的数据,Hold检查为何关注同一周期的数据,并提供实际设计中的考量因素和修复策略,帮助工程师彻底理解时序检查的本质。

weixin_29927965的博客 363

若依开源框架(分离版)在人大金仓数据库下使用

对于甲方业务特殊要求,使用国产化数据库人大金仓,作为项目主要存储。这里以若依开源框架整合人大金仓为例,演示如何在真实项目中引入人大金仓。

🐱喵测实验室 5942

《spring boot 应用开发》课程心得体会

回顾整个《Spring Boot 应用开发》课程的学习过程,我深感收获颇丰。这门课程不仅让我掌握了一门强大的开发技术,更培养了我的问题解决能力、创新思维和团队合作精神。在未来的学习和工作中,我将继续努力,不断提升自己的技术水平,将 Spring Boot 应用开发的知识运用到实际项目中,为创造更优秀的软件产品贡献自己的力量。同时,我也希望更多的开发者能够加入到 Spring Boot 的学习和应用中来,共同推动软件开发行业的进步。

2403_83676243的博客 1014

Calibre提参实战:如何用hcell和xcell文件精准屏蔽模块(附避坑指南)

本文详细解析了Calibre提参过程中hcell和xcell文件的应用技巧,帮助工程师精准屏蔽模块以优化寄生参数提取。通过对比hcell与xcell的核心差异、图形界面与命令行操作指南,以及常见问题排查方法,提升芯片后端设计效率。附避坑指南,解决EETOP论坛热议的模块丢失问题。

weixin_26795617的博客 440

我看《万历十五年》

     我看《万历十五年》万历十五年,除了一些难以避免的灾患之外,在中国这块古老的土地上没有发生任何一件足以影响历史进程的大事。但是作者却独独选择这一年作为其切入点,以全新的视角,新颖的形式,深刻的思想为我们揭示了明代历史进程中的一页,昭示了东方这个古老的帝国衰败的必然。    全书以人物为主线,分为七个章节,每一个章节都有一个主角,而这些主角的选择又涉及到社会不同的阶层,构成了明代中晚期社

淡薄以明志,宁静而至远 4055

Python实战:5分钟搞定N-CMAPSS航空发动机数据集解析(附完整代码)

本文提供了一份针对N-CMAPSS航空发动机数据集的快速解析实战指南。通过Python的h5py和Pandas库,详细演示了如何高效读取HDF5格式文件、理解数据结构、提取关键特征(如传感器数据与剩余使用寿命RUL),并整合为可用于预测性维护分析的DataFrame,帮助研究者和工程师快速上手这一重要的工业时序数据集。

weixin_29083373的博客 278

RK3588 ENV 环境配置之 fw_printenv

RK3588 ENV环境配置指南 本文详细介绍了在RK3588平台上配置ENV环境变量的完整流程。首先需要在parameter分区表中划分env分区,然后在U-Boot中配置MMC偏移地址。接着编译fw_printenv工具并部署到目标设备,配置fw_env.config文件指定存储位置。重点解决了内核中读写ENV时遇到的CRC校验问题,通过U-Boot的saveenv命令初始化环境变量存储区域。最后展示了如何使用fw_printenv/fw_setenv工具在内核中读写ENV变量,并建议将配置集成到根文件

501846585_QQAndroid_java 1033

《最后纪元》+风灵月影的完美结合攻略心得分享(附二十五项功能)

风灵月影修改器是一款专为《最后纪元》等游戏设计的多功能辅助工具,由知名修改器制作者风灵月影精心打造。它以其丰富的功能、稳定的性能和易用的操作界面赢得了广大玩家的喜爱。最后纪元二十五项功能-风灵月影版。

2401_87099071的博客 1819

新手必看!手把手教你如何在飞牛NAS上玩转Docker容器!(飞牛Nas(fnOS)如何创建Docke容器以及Compose部署项目)

新手必看!手把手教你如何在飞牛NAS上玩转Docker容器!(飞牛Nas(fnOS)如何创建Docke容器以及Compose部署项目)

XiaoqiangClub的博客 1万+

我的世界之战争星球暮色苍茫篇 第十五章、个人赛

同时双手一晃,三叉戟赫然在手,一个瞬移便到了铁崎背后,将三叉戟猛地掷出,铁崎暗道不妙,将身一扭,将大斧直接甩出,击飞三叉戟,然后又凝聚一把铁斧,和梦魇斗在一处,梦魇其实完全可以秒杀对方,但为zhan’dou’ta,铁崎用左手一把抓住,冷笑道。初赛众人基本都赢了——除了秦悦,因为她的武灵是不死图腾,没有什么攻击力,而她本身有没有铃鸢和铃兰那样的剑法,没能进入决赛,不过她并不气馁,因为她知道,团队赛她才能展现出自己的重要性。然而梦魇却不慌不忙,左手一翻,有凝聚出一把三叉戟,两把三叉戟一齐往地上一刺,暴喝一声。

Dark__Monarch的博客 1112

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

我们常说的十三薪、十五薪这种,能百分之百发下来吗?它和年终奖有什么区别?

大家在跳槽谈薪的时候,经常会听到公司说发十三薪、十五薪,这种薪资能百分之百发下来吗?它和年终奖有什么区别?来看下网友们怎么说吧!有人说,它们就是年终奖,十三薪是年终奖发一个月工资,十五薪就是年终奖发三个月工资。当然,也不一定百分之百发放,可能和绩效挂钩。比如十四薪,考核拿到b能拿全2个月工资,考核结果是c的话,仍然会有年终奖,但会低于2个月工资。也有人说,这两者不一样,十三薪是指年底那个月双薪,年终奖额外算。年终奖跟公司经营情况和绩效挂钩,可有可无,或多或少。

2301_76161259的博客 5514

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

读《万历十五年》

  春节,天气寒冷,在家读书。知道黄仁宇是因为《万历十五年》这本书,但是我直到今年才开始阅读。几年前,当知道他的大名时,读了他的另外两本书,《中国大历史》和《赫逊河畔谈中国历史》。读后决定以后不再去度黄仁宇的书,他常以当今的行政去度量和要求,而忽视了税制和人事建立的缘由,他的批评超越了当时行政效率所能达到的极限,言必称精确统计在经济和行政的重要性。即使当今,国家统计局的数据也有打架的现象,何况

愷风(Wei)的专栏 2512

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

第十五届pb组国赛赛后浅谈

文前声明:本文没有实际代码,思维仅供参考,没有与他人进行核对,纯属分享个人想法。有幸在第十五届蓝桥杯中进入国赛,因为压根没想到能拿省一所以国赛没怎么准备,回过神来已经就剩十几天时间了。所以简简单单背了下板子,也没用到多少,今年国赛感觉更重要的是思维吧,不过算法不就是思维嘛哈哈哈哈哈。因为写完后不管结果怎么样,但是心情比较舒畅,想着写一篇自己的题解说一说吧,我自己算法能力比较一般,所以题解可能不是很近人意,只想分享一下。

weixin_73415846的博客 1263

Java学习之路:第十五周课程笔记归纳

1. 接口:是一种标准、规范,是接口的实现者和接口的使用者都必须遵循的约定。【理解】2. 接口的语法:【重点】(1) 接口的关键字:interfaceinterface 接口{}(2) 接口编译之后会生成独立的 .class 文件(3) 接口不能创建对象,但是可以声明引用(4) 接口中的属性都是公开、静态、常量(默认的被 public static final 修饰)(5) 接口中的方法都是公开、抽象方法(默认的被 public abstract 修饰)(6) 接口中没有构造方法。

2401_88151092的博客 1008

串口相关个人体会

串口编程学习报告 引言:    串口是计算机上非常通用设备通信的协议,串行接口可以接收来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接收的串行数据流转换为并行数据字符供给CPU的器件,在日常生活中应用广泛,因此有必要对串口进行深入学习,首先谈到需要了解的硬件和软件方面的知识,然后可以整体的了解从硬件到软件数据收发的过程. 一.硬件部分 1、串口通信是一位一位的传输的,但

rong508的专栏 783

十五数码问题

十五数码问题又叫移棋盘问题,有很多种解法。今俺用c写了几种解法,望各位指点。//**********************************************************//标题:  关于十五数码问题//文件名:FifteenNumber.cpp//版权:由王智安所编写//**************************************************

无田的农民工 3562
上一篇: (十四)在百度学术中文数据集上运行PositionRank获取最终实验结果
下一篇: (一)基于文本的QA问答系统——交互系统简介
Simonsdu
博客等级 码龄7年 4粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值