8.3-无监督学习-词嵌入

2023-10-31

1-of-N Encoding

img

word embedding是dimension reduction的一个广为人知的应用。如果今天要你用一个vector来表示word,你会怎么做?最difficult的做法叫做:1-of-N Encoding。

每一个word用一个vector来表示,这个vector的dimension就是这个世界上可能有的word的数目。假设世界上可能有10w个word,那1-of-N Encoding的 dimension就是10w维,那每一个word就对应到其中一维。那apple就是第一维是1其它为0,bag就是第一维是1其它是0,以此类推。如果你用这种方式来描述一个word,你的每一个word的这个vector都是不一样的,所以你从这个vector里面没有办法得到任何的咨询,比如说:cat跟dog都是动物这件事,你没有办法知道。

那怎么办呢?有一个方法叫做word class。也就是你把不同的word,但有同样性质的word,把他们class成一群一群的,然后用那个word所属的class来表示这个word。比如说dog跟cat都是class1,ran jumped,walk是class2,flower,tree,apple是class3等等。但是用class是不够的(少了一些information),比如说class1是动物,class2是植物,都是属于生物,但是在class里面没有办法来呈现这件事情。或者说:class1是动物,class2是动物可以做的行为,可以看出是有一些关联的,但是用class没有办法来呈现出来。

所以我们需要word Embedding:把每一个word都project到high dimension sapce上面(但是远比1-of-N Encoding的dimension要低,比如说有10w个word,那1-of-N Encoding就是10w维。但是project到high dimension,通常是100维左右)我们希望可以从这个word Embedding图上可以看到的结果是:类似同一个语义的词汇,在这个图上是比较接近的。而且在这个high dimension space里面,每一个dimension可能都有它特别的含义。假设我们做完word Embedding以后,每一个word Embedding的feature vector长这个样子,那你可能就知道说这个dimension代表了生物和其它东西之间的差别(横轴),那个dimension就代表了跟动作有关的东西(纵轴)

词嵌入

image

那怎么做word Embedding呢?word Embedding是Unsupervised 。我们怎么让machine知道每一个词汇的含义是什么呢,你只要透过machine阅读大量的文章,它就可以知道每一个词汇它的embeding feature vector应该长什么样子。

image

我们要做的是:learn一个neural network,找一个function,你的input是一个词汇,output就是那个词汇对应的word Embedding。我们手上有的train data是一大堆的文字,所以我们只有input,但是我们没有output(我们不知道每一个word Embedding应该长什么样子)。所以我们要找的function只是单向(只知道输入,不知道输出),这是一个Unsupervised的问题。

那这个问题要怎么解呢?我们之前讲过一个deep learning base dimension reduction的方法叫做auto-encoder,这个问题是没有办法用auto-encoder来解。

image

那怎么样找这个word Embedding呢?精神:你要如何了解一个词汇的含义呢,你要看它的context(每一个词汇的含义,可以根据它的上下文来得到)

举例来说:假设机器读了一段文字:“马英九520宣誓就职”,它又读了一段新文字:“蔡英文520宣誓就职”。对机器来说,它不知道马英九和蔡英文指的是什么,但是马英九和蔡英文后面有接520宣誓就职。对机器来说,它只要读了大量的文章,发现马英九和蔡英文后面有类似的context,机器就会推论说:蔡英文和马英九代表了某种有关系的物件(不知道他们是人,但机器知道说:蔡英文和马英九这两个词汇代表是同样地位的东西)

基于计数的词嵌入

image

怎样用这个精神来找出这word Embedding呢?有两个不同体系的做法,一个做法是:count based。count based:如果我们现在有两个词汇w_i,w_jwi,wj,他们的word vector(用V(w_iwi,)V(w_jwj来表示),如果w_i,w_jwi,wj它们常常在同一个文章出现,那他们的V(w_iwi,)V(w_jwj)会比较接近。这个方法一个很代表性的例子叫做Glove vector。

这个方法的原则是这样,假设我们知道w_iwi的word vector是V(w_i)V(wi),w_jwj的word vector是V(w_j)V(wj),我们可以计算V(w_iwi,)V(w_jwj)它的inner product,假设N_{i,j}Ni,j是w_iwi,w_iwi他们在同一个document的次数,那我们就希望这两件事情(内积和同时出现的次数)越接近越好。你会发现说:这个概念跟我们之前将的matrix factorozation的概念其实是一样的

基于预测的词嵌入

另外一个方式是:prediction based方法,据我所知,好像没有人很认真的比较过prediction based方法跟counting based 方法有什么样非常不同的差异或者是谁优谁略。

image

具体步骤

prediction based想法是这样子的:我们来learn一个neural network,这个neural network做的就是givenw_{i-1}wi−1(w就代表一个word),prediction下一个可能出现的word是什么。每一个word可以用1-of-N encoding表示成一个feature vector,所以我们要做prediction这件事情的话,我们就是learning一个neural network,它的input就是w_{i-1}wi−1的1-of-N encoding feature vector,它的output就是下一个wordw_iwi是某一个word的几率。也就是说,这个model它的output dimension就是word(假设世界上有10w个word,这个model 的output就是10w维),每一维代表了某一个word是下一个word(w_iwi)的几率。

假设这是一个multiple layer perceptron neural network,那你把feature vector丢进去的时候,通过一些hidden layer,就会得到output。接下来我们把第一个hidden layer的input拿出来,第一个dimension是z_1z1,第二个dimension是z_2z2,以此类推。那我们用这个z就可以代表一个word,input不同的1-of-N encoding,这边的z就会不一样。所以我们把z拿来代表一个词汇,就可以得到这个vector。

image

prediction based的方法是怎么体现:根据一个词汇的上下文来了解一个词汇的含义这件事情呢?假设我们的train data里面有一个文章是“蔡英文宣誓就职”,另一和文章是“马英九宣誓就职”,在第一个句子里,蔡英文是w_{i-1}wi−1,宣誓就职是w_{i}wi,在另外一篇文章里面,马英九是w_{i-1}wi−1,宣誓就职是w_{i}wi。

你在训练这个prediction model的时候,不管input蔡英文还是马英九,你都会希望learn出来的结果是:宣誓就职的几率比较大的。所以你在input蔡英文,马英九的时候,它对应到“宣誓就职”那个词汇几率是高的。蔡英文,马英九虽然是不同的input,但是为了让output的地方得到一样的output,那你就必须让中间的hidden layer做一些事情。中间的hidden layer必须要学到说,这两个不同的词汇,必须要通过weight转化以后对应到同样的空间(进入hidden layer之前,必须把他们对应到接近的空间中,这样子我们在output的时候,他们才能有同样的几率)

所以当我们learn一个prediction model的时候,考虑word context这件事情,就自动地考虑在这个prediction model里面。所以我们把prediction model的第一个hidden layer拿出来,我们就可以得到我们想要找的这种word embedding的特性。

共享参数

image

那你可能会说:用w_{i-1}wi−1去predictionw_iwi好像觉得太弱(给你一个词汇,prediction下一个词汇,下一个词汇的可能是千千万万的)。那怎么办呢?

你可以拓展这个问题,我希望machine learn的是前面两个词汇(w_{i-2},w_{i-1}wi−2,wi−1),然后prediction下一个词汇(w_iwi),你可以轻易的把这个model拓展到n个词汇。如果你真要learn这样的word embedding的话,你的input通常是至少10个词汇,你这样才有可能learn出reasonable的结果(只input一个或者两个太少了,我这里用input两个word当做例子)

注意的地方是:如果是一般的neural network,你就把inputw_{i-1},w_{i-2}wi−1,wi−2的1-of-N encoding vector把它接在一起变成一个很长的vector,直接丢在neural network里面当做input就可以了。但是实际上你在做的时候,w_{i-2}wi−2的第一个dimension跟第一个hidden neural它们中间连的weight和w_{i-1}wi−1的第一个dimension跟第一个hidden neural它们中间连的weight,这两个weight必须是一样的,以此类推。

为什么这样做呢,一个显而易见的理由是:如果我们不这样做,你把同一个的word放在w_{i-2}wi−2的位置跟放在w_{i-1}wi−1的位置,通过这个transform以后,它得到embedding就会不一样。另外一个理由是:这样做的好处是,可以减少参数量,那你就不会随着你的context增长,而需要更多的参数。

image

现在假设w_{i-2}wi−2的1-of-N encoding是x_{i-2}xi−2,w_{i-1}wi−1的1-of-N encoding是x_{i-1}xi−1,那它们的长度都是V的绝对值。那hidden layer的input写成一个vector z,z的长度写成Z的绝对值,z等于x_{i-1}xi−1乘以W_1W1加上x_{i-2}xi−2乘以W_1W1。现在W1,W2W1,W2都是一个\left | Z|X|V \right |∣Z∣X∣V∣weight matrices

我们强制W1=W2=WW1=W2=W,所以我们今天实际在处理这个问题的时候,你可以把x{i-1}xi−1跟x{i-2}xi−2加起来(z= W(x_{i-1}+x_{i-2})z=W(xi−1+xi−2))。那你今天要得到一个word vector的时候,你就把1-of-N encoding乘上这个W,就得到了这个word embedding。

image

在实际上,你咋样让W1,W2W1,W2一样呢。做法是这样子的:假设我现在有两个weightw_i,w_jwi,wj,我们希望w_i=w_jwi=wj。首先你要给w_i,w_jwi,wj一样的initializati,然后updatew_iwi。然后计算w_jwj对cost function的偏微分,然后updatew_jwj。你可能会说,w_i,w_jwi,wj对C的偏微分是不一样的,再做update以后,那它们的值就不一样了呀。如果你只是列这样的式子,w_i,w_jwi,wj经过一次update以后就不一样了。

那我们就把w_iwi对C的偏微分减去w_jwj对C的偏微分,w_jwj对C的偏微分减去w_iwi对C的偏微分,w_i,w_jwi,wj的update就一样了

训练

image

那咋样训练这个network呢?这个训练是Unsupe(rvised的,所以你只需要collect一大堆的文字data(爬虫),然后就可以train你的model了。

比如说有一个句子是:“潮水退了就只知道谁没穿裤”。那你让你的neural network input “潮水”跟“退了”,希望output就是“就”。所以你就希望你的output跟“就”的1-of-N encoding是minimize cross entropy(“就”也是1-of-N encoding来表示的)。然后input“退了”跟“就”,希望它的output跟“知道”越接近越好。然后input“就”跟“知道”,希望它的output跟“谁”越接近越好。刚才讲的只是最基本的形态。

Various Architectures

image

这个prediction baed的model可以有种种的变形,我目前不确定说:在这么多的变形哪一种是比较好的(在不同的task上互有胜负)。有一招叫做continuous bag of word model,我们刚才说:拿前面的词汇会prediction接下来的词汇。那CBOW的意思就是说:某一个词汇的context去prediction中间的词汇(w_{i-1},w_{i+1}wi−1,wi+1去predictionw_iwi)skin-gram是说:我们拿中间的词汇去prediction接下来的context(用w_iwi去predictionw_{i-1},w_{i+1}wi−1,wi+1)

假设你有读过word vector的文献的话,这个neuralnetwork不是deep的,它其实就是一个hidden layer(linear hidden layer)

image

我们知道word vector有一些有趣的特性,我们可以看到说你把同样类型的东西word vector摆在一起(Italy跟Rome摆在一起,Japen跟Tokyo摆在一起,他们之间是有某种固定的关系的)或者说你把动词的三态摆在一起,同一个动词的三态中间有某种固定的关系

image

所以从这个word vector里面,你可以discover word和word之间的关系。还有人发现说:把两个word vector两两相减,然后project到two dimension sapce上面。如果今天是落在这个位置的话,那这连个word vector 具有包含的关系(海豚跟白海豚相减,工人跟木匠相减,职员和售货员相减,都落在这个地方。如果一个东西属于另一个东西的话,两个相减,他们的结果是会很类似的)

image

我们来做一些推论,我们知道hotter的word vector减掉hot的vord vector会很接近bigger的word vector减掉big的vord vector。Rome的word vector减掉italy的vord vector会很接近Berlin的word vector减掉Germany的vord vector。King的word vector减掉queen的vord vector会很接近uncle的word vector减掉aunt的vord vector

如果有人问你说:罗马来自于意大利,那柏林来自于什么呢。机器可以回答这样的问题,怎么做呢?(我们知道Germany vector会很接近于Berlin vector 减去Rome vector加上Italy vector vector)假设我们不知道答案是Germany的话,那你要做的事情就是:计算Berlin vector 减去Rome vector加上Italy vector,然后看看它跟哪一个vector最接近,你可能得到的答案是Germany

多语言嵌入

image

还可以做很多事情,可以把不同语言的word vector拉在一起(假设你有中文的咖啡,有一个英文的coffee,各自去train一组vector,你会发现说,中文和英文word vector是没有任何关系的。因为在做word vector的时候是凭借上下文的关系,如果今天中文和英文混杂在一起,那machine就没有办法来判断中文和英文之间的词汇关系)。但是假如你事先知道某几个中文词汇,某几个英文词汇是对应在一起的,你先得到一组中文的word vector,再得到一组英文的word vector。接下来你再learn 一个model,它把中文和英文对应的词汇(加大对应enlarge,下跌对应到fall)通过这个projection以后,把他们project到sapce同一个点。

图上上面是绿色,然后下面是绿色英文,代表是已经知道对应关系中文和英文的词汇。然后你做这个transform以后,接下来有新的中文词汇跟新的英文词汇,你都通过projection把他们project到同一个space上面。你就可以知道中文的降低跟英文的reduce都应该落在差不多的位置,你就可以知道翻译这样的事情

多域嵌入

image

在这个word embedding 不局限于文字,你可以对影像做embedding。举例:我们现在已经找好一组word vector,dog vector,horse vector,auto vector,cat vector在空间中是这个样子。接下来,你learn一个model,input一张image,output是跟word vector一样dimension的vector。你会希望说,狗的vector分布在狗的周围,马的vector散布的马的周围,车辆的vector散布在auto的周围。

假设有一张新的image进来(它是猫,但是你不知道它是猫),你通过同样的projection把它project这个space以后。神奇的是,你发现它就可能在猫的附近,那machine就会知道这是个猫。我们一般做影像分类的时候,你的machine很难去处理新增加的,它没有看过的。

如果你用这个方法的话,就算有一张image,在training的时候你没有看到过的class。比如说猫这个image,从来都没有看过,但是猫这个image project到cat附近的话,你就会说,这张image叫做cat。如果你可以做到这件事的话,就好像是machine阅读了大量的文章以后,它知道说:每一个词汇它是什么意思。先通过阅读大量的文章,先了解词汇之间的关系,接下来再看image的时候,会根据它阅读的知识去match每一个image所该对应的位置。这样就算它没有看过的东西,它也有可能把它的名字叫出来。

文档嵌入

image

刚才讲的是word embedding,也可以做document embedding。也就不是把word变成一个vector,也可以把document变成一个vector

语义嵌入

image

那咋样把一个document变成一个vector呢?最简单的方法我们之前已经讲过了,就是把一个document变成一个bag-of-word,然后用auto encoding就可以learn出document semantic embedding。但光这样做是不够

Beyond Bag of Word

image

我们光用bag-of-word描述一个document是不够的,为什么呢?因为我们知道词汇的顺序代表了很重要的含义。举例来说,如图有两个句子“white blood cells destorying an infection”,“an infection destorying white blood cells”。如果这两句话,你看它们的bag-of-word是一模一样的(词汇相同)。上面这句话:白细胞消灭可传染病是positive,下面这句话是negative。虽然他们有相同的bag-of-word,但是它们的语义是不同的,所以如果只是用bag-of-word来描述一张document是非常不够的,会失去很多重要的information。

image

列了一大堆的reference给大家参考,前面的三种是unsupervised,也就是你collect一大堆的document,你就可以让它自己去学。后面的几个方法是supervised的,在这些document你需要进行额外的label。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

8.3-无监督学习-词嵌入 的相关文章

  • Python BigQuery 存储。并行读取多个流

    我有以下玩具代码 import pandas as pd from google cloud import bigquery storage v1beta1 import os import google auth os environ G
  • Python、Tkinter、更改标签颜色

    有没有一种简单的方法来更改按钮中文本的颜色 I use button text input text here 更改按下后按钮文本的内容 是否存在类似的颜色变化 button color red Use the foreground设置按钮
  • Pycharm Python 控制台不打印输出

    我有一个从 Pycharm python 控制台调用的函数 但没有显示输出 In 2 def problem1 6 for i in range 1 101 2 print i end In 3 problem1 6 In 4 另一方面 像
  • Flask 和 uWSGI - 无法加载应用程序 0 (mountpoint='')(找不到可调用或导入错误)

    当我尝试使用 uWSGI 启动 Flask 时 出现以下错误 我是这样开始的 gt cd gt root localhost uwsgi socket 127 0 0 1 6000 file path to folder run py ca
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • 如何使用 Scrapy 从网站获取所有纯文本?

    我希望在 HTML 呈现后 可以从网站上看到所有文本 我正在使用 Scrapy 框架使用 Python 工作 和xpath body text 我能够获取它 但是带有 HTML 标签 而且我只想要文本 有什么解决办法吗 最简单的选择是ext
  • 打破嵌套循环[重复]

    这个问题在这里已经有答案了 有没有比抛出异常更简单的方法来打破嵌套循环 在Perl https en wikipedia org wiki Perl 您可以为每个循环指定标签 并且至少继续一个外循环 for x in range 10 fo
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • 运行多个 scrapy 蜘蛛的正确方法

    我只是尝试使用在同一进程中运行多个蜘蛛新的 scrapy 文档 http doc scrapy org en 1 0 topics practices html但我得到 AttributeError CrawlerProcess objec
  • Python 中的二进制缓冲区

    在Python中你可以使用StringIO https docs python org library struct html用于字符数据的类似文件的缓冲区 内存映射文件 https docs python org library mmap
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • 如何将 numpy.matrix 提高到非整数幂?

    The 运算符为numpy matrix不支持非整数幂 gt gt gt m matrix 1 0 0 5 0 5 gt gt gt m 2 5 TypeError exponent must be an integer 我想要的是 oct
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • Numpy 优化

    我有一个根据条件分配值的函数 我的数据集大小通常在 30 50k 范围内 我不确定这是否是使用 numpy 的正确方法 但是当数字超过 5k 时 它会变得非常慢 有没有更好的方法让它更快 import numpy as np N 5000
  • 为美国东部以外地区的 Cloudwatch 警报发送短信?

    AWS 似乎没有为美国东部以外的 SNS 主题订阅者提供 SMS 作为协议 我想连接我的 CloudWatch 警报并在发生故障时接收短信 但无法将其发送到 SMS YES 经过一番挖掘后 我能够让它发挥作用 它比仅仅选择一个主题或输入闹钟
  • Python:计算字典的重复值

    我有一本字典如下 dictA unit1 test1 alpha unit1 test2 beta unit2 test1 alpha unit2 test2 gamma unit3 test1 delta unit3 test2 gamm
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • Spark.read 在 Databricks 中给出 KrbException

    我正在尝试从 databricks 笔记本连接到 SQL 数据库 以下是我的代码 jdbcDF spark read format com microsoft sqlserver jdbc spark option url jdbc sql
  • Python:元类属性有时会覆盖类属性?

    下面代码的结果让我感到困惑 class MyClass type property def a self return 1 class MyObject object metaclass MyClass a 2 print MyObject

随机推荐

  • 计算机网络笔记(五):传输层

    文章目录 前言 多路复用和多路分用 UDP User Datagram Protocol RFC 768 可靠数据传输原理 流水线机制与滑动窗口协议 Go Back N GBN 协议 Selective Repeat SR 协议 TCP 协
  • 【js】删除数组中指定元素

    删除数组中指定的元素 export const removeArr function arr val let index arr indexOf val if index gt 1 arr splice index 1 return arr
  • varying是vs和Ps之间的shader传递变量

    正如uniform是shader和应用程序之间传递的变量 varying是shader之间传递的变量 比如 vs的输出 也就是Ps的输入
  • 简单理解css中的垂直居中和水平居中,即vertical-align和text-align属性

    前言 在很多情况下 我们要使用到内容的居中 这里的居中包括了垂直居中和水平居中 下面来浅谈一下 对于水平居中的属性text align和垂直居中属性vertical align的理解 1 text align 如果要实现水平居中 比如我们要
  • STM32菜鸟成长记录---系统滴答定时器(systick)应用

    1 systick介绍 Systick就是一个定时器而已 只是它放在了NVIC中 主要的目的是为了给操作系统提供一个硬件上的中断 号称滴答中断 滴答中断 这里来简单地解释一下 操作系统进行运转的时候 也会有 心跳 它会根据 心跳 的节拍来工
  • java线程间如何通信

    Java线程之间可以通过以下方式进行通信 使用 wait 和 notify 方法 这需要使用同步代码块或同步方法 在同步代码块或同步方法中 线程可以调用 wait 方法阻塞 并在其他线程调用 notify 方法后恢复执行 使用 CountD
  • Altium Designer之图片logo导入笔记

    图片logo导入分为两种 丝印类型 露铜 1 在PCB页面 文件 运行脚本 弹出运行条目对话框 浏览 选择 PRJSCR文件 点击运行脚本 确定 弹出对话框 图1 1 选择导入文件 图1 2 导入对话框 2 点击加载 选择 bmp格式图片
  • [论文解读]Attention is all you need

    论文地址 http papers nips cc paper 7181 attention is all you need pdf 发表会议 NIPS2017 文章目录 动机 背景 思考 细节 网络结构 总结 参考 最早提出self att
  • windows cd ~/.ssh报错

    这里提供一个你之前可能有这个文件 打开这个在进入
  • 虚拟化服务器安全性,服务器虚拟化安全性

    服务器虚拟化安全性 内容精选 换一换 裸金属服务器与周边服务的依赖关系如图1所示 企业主机安全 Host Security Service HSS 是提升服务器整体安全性的服务 通过主机管理 风险防御 入侵检测 安全运营 网页防篡改功能 可
  • Kaldi安装与编译报错

    Environment Rule number 1 use Linux Although it is possible to use Kaldi on Windows most people I find trustworthy convi
  • 【数据结构】单链表的应用——有序多项式合并化简

    写在前面的话 本人是学生 水平有限 测试用例较少 如果有纰漏还请见谅 有如下俩个多项式 利用链表将他们合并成一个并且化简 结点结构 typedef struct node float coef 系数 int exp 指数 struct no
  • 缺陷检测公开数据集大全

    一 弱监督学习下的工业光学检测 DAGM 2007 数据下载链接 https hci iwr uni heidelberg de node 3616 数据集简介 主要针对纹理背景上的杂项缺陷 较弱监督的训练数据 包含十个数据集 前六个为训练
  • 学习太极创客 — MQTT 第二章(二)ESP8266 QoS 应用

    因此 这里将仅介绍如何使用 ESP8266 来接收 QoS 1 的 MQTT 消息 这里的程序与 学习太极创客 MQTT 八 ESP8266订阅MQTT主题 这一小节中的内容基本一致 只不过这里的示例是 QoS 1 项目名称 Project
  • 控制listview大图标之间的间距

    DllImport user32 dll CharSet CharSet Auto public static extern IntPtr SendMessage IntPtr hWnd int msg int wParam int lPa
  • tinyxml开发入门

    概述 tinyxml和xercesc一样 提供了完整的dom操作api tinyxml相对比较简单好用 编译连接也不容易出问题 xercesc比较麻烦 非常完整庞大 编译有点麻烦 有内存泄漏 我认为在一般需求完全可以使用tinyxml ti
  • 八数码深度优先搜索_数据结构与算法之美26——广度优先搜索与深度优先搜索...

    什么是搜索算法 上一节介绍了图的基本概念 这一节介绍图的搜索算法 图的搜索算法 最直观的理解就是从一个顶点到另一个顶点的路径 最简单的是广度优先搜索和深度优先搜索 这也是这一节介绍的内容 另外还有A IDA 等启发式搜索算法 本节内容以无向
  • windows10和CentOS 7安装nginx作文件管理器

    目录 一 windows10 系统配置nginx文件服务器 1 到nginx官网上下载windows版本的nginx 地址http nginx org en download html 2 把下载的包放在电脑磁盘里解压 注意解压的包的路径不
  • 哈工大2020机器学习实验一:多项式拟合正弦曲线

    源代码请参考 实验一 GitHub 仓库 运行效果请参考 主程序 哈尔滨工业大学计算学部 实验报告 机器学习 实验一 多项式拟合正弦函数 学号 1183710109 姓名 郭茁宁 文章目录 一 实验目的 二 实验要求及实验环境 实验要求 实
  • 8.3-无监督学习-词嵌入

    文章目录 1 of N Encoding 词嵌入 基于计数的词嵌入 基于预测的词嵌入 具体步骤 共享参数 训练 Various Architectures 多语言嵌入 多域嵌入 文档嵌入 语义嵌入 Beyond Bag of Word 1