精华内容
下载资源
问答
  • 数字钱包是什么? 区块链数字货币钱包即能够存储、管理和交易数字货币的软件。 如果以中心化的软件来类比的话,大概就相当于支付宝。虽然真的对比起来,无论是从中心化程度、还是对用户信息的保护度以及对设备的依赖...

    随着区块链领域的纵深发展,全球对数字货币关注度的提升,区块链数字货币钱包逐渐从浪潮中涌现,成为区块链未来进程中不可或缺的一部分。

    数字钱包是什么?

    区块链数字货币钱包即能够存储、管理和交易数字货币的软件。

    如果以中心化的软件来类比的话,大概就相当于支付宝。虽然真的对比起来,无论是从中心化程度、还是对用户信息的保护度以及对设备的依赖程度都有所不同。比如说,支付宝是依附金融机构的中心化钱包,而数字货币钱包也并非全部是去中心化的,除却交易时部分节点信息确认和全节点信息确认这种较为去中心化的钱包,也有依托中心化信用结构的中心化数字货币钱包。在全名实名制的情况下,数字钱包是匿名的,隐私保护性自然更好。而现在多数的数字钱包是手机端、pc端以及硬件钱包多方支持的,在对设备的依赖性上也较弱,更为便捷。还有其他一些特性,但在这里暂不赘述。

    数字钱包有个和常见中心化钱包迥异的分类,即冷热钱包。众所周知,冷热钱包就是触网钱包和非触网钱包。热钱包,即触网钱包交易便捷,但因为联网,安全性上则不如冷钱包。冷钱包不触网,储存大额数字货币更为安全。

    公钥和私钥

    冷热钱包想来大家都更熟悉一些,但一些常见的字眼可能就容易混乱,比如“公钥”和“私钥”。

    对称加密中,加密解密用的秘钥是一致的,非对称加密中,加密解密用的秘钥则不同,是一对,我们称之为“公钥”和“私钥”。“公钥”顾名思义——可以公开,“私钥”则是私密的。如果用公钥对内容加密,则必须用私钥来解密;如果用私钥对内容加密,则必须使用公钥来解密。这样就相当于对内容进行一个双重的保护。如果我们把消息的接受者和发送者称为A和B,B生成“公钥+私钥”的秘钥对,并且把公钥发给A,然后A用公钥对信息进行加密,再把密文发送给B,B用私钥对密文进行解密。这个过程里,B的私钥就不需要发送给别人,不存在传递过程,也就很难被窃取。

    生活中的银行账户来类比一下。钱包地址就相当于银行卡卡号,在创建钱包后生成,一个钱包对应一个钱包地址,就相当于一张卡只有一个卡号,钱包地址可以接受和转出加密货币。而“公钥”则是银行卡的密,私钥是更高级的能够证明你身份的东西,即证明你持卡人身份的身份证号码。

    这里要注意的是一个钱包只能有且仅有一个私钥并且不能修改,就相当于你有且仅有一个身份证号码不能修改,私钥可以证明你是钱包所有者,允许你进入钱包并且拥有钱包的掌控权。同时,可以用来找回公钥和钱包地址,就像你你银行卡丢了或者密码忘记了,可以带身份证去银行找回一样。但是如果你身份证丢了,事情要麻烦的多。私钥也是一样,而且在加密世界,没有公安部门,私钥丢失将无法重新办理,只能利用“助记词”找回。

    助记词和私钥

    那问题来了,“助记词”又是什么?这是个很简单的名词,其实了解私钥就了解了助记词。助记词顾名思义,就是私钥的备份,私钥是由哈希算法加密而成,哈希算法无论输入是什么数字格式、文件有多大,输出都是固定长度的比特串,一般而言是256bit。每个bit就是一位0或者1,256bit就是256个0或者1二进制数字串,用16进制数字表示的话,就是多少位呢?16等于2的4次方,所以每一位16进制数字可以代表4位bit。那么,256位bit用16进制数字表示,当然是256除以4等于64位。因而私钥往往是由64位字符串组成,比较难记,助记词只有12个单词,相当于标记私钥,如果忘记私钥,用助记词也可以进入钱包并且找回私钥。

    Keystore

    Keystore是包含秘钥(公钥和私钥)以及只包含公钥的可信任证书实体的文件。一般是由jave数据证书管理工具生成的。

    如果说地址是银行卡卡号,公钥是银行卡密码,私钥是身份证,那么keystore就是银行卡。这样来看,似乎和钱包地址是一样的东西,但其实还是有区别的。虽然从转账的角度来看,银行卡卡号和银行卡有一样就行,但从狭义上来细究。Keystore作为数字钱包世界的“银行卡”,它包含着除“银行卡号”之外的其他信息,如编码以及加密方式等等。所以,keystore和钱包地址是功能上相似,定义上不同的两个东西。

    综上所述,最为重要的是私钥或者说私钥和助记词,直接确认持有人身份,一定要妥善保管好,它可以生成数字钱包所需要的一切东西。那如果私钥丢失怎么办呢,如果私钥丢失,拥有keystore和公钥,即持有银行卡和密码也可以继续使用钱包。如果私钥、助记词和公钥都丢失,那么你的数字钱包里的资产将永远封存。

    展开全文
  • 助记词库有 2048 个,用 11 位可全部定位词库中所有的,作为的索引,故一个用 11 位表示, 助记的个数可为 (熵+校验和)/11 ,值为 12,15,18,21,24 熵(bits)校验和(bits)熵 + 校验和 (bits)助记长度...

    分类

    区块链相关的话题持续发酵之时,应该不少人知道加密货币钱包,钱包是普通用户与加密货币系统交互的入口,各种形态的钱百花齐放,手机钱包、桌面钱包、硬件钱包、网页钱包和纸质钱包等。通过钱包可以无国界无限制地转移你的数字资产。从开发者的角度看,钱包的作用是管理用户的私钥、通过私钥签名交易管理用户在区块链上的数字货币。

    Bitcoin Address + Private key = Bitcoin Wallet

    根据密钥之间是否有关联可把钱包分为两类:nondeterministic walletdeterministic wallet

    • nondeterministic wallet:密钥对之间没有关联
    • deterministic wallet: 密钥对由一个原始的种子主密钥推导而来。最常见的推导方式是树状层级推导 (hierarchical deterministic) 简称 HD

    比特币钱包 (Bitcoin Core) 生成密钥对之间没有任何关联,属于 nondeterministic wallet ,这种类型的钱包如果想备份导入是比较麻烦的,用户必须逐个操作钱包中的私钥和对应地址。deterministic wallet 基于 BIP32 (Bitcoin Improvement Proposal 32) 标准实现,通过一个共同的种子维护 n 多私钥,种子推导私钥采用不可逆哈希算法,在需要备份钱包私钥时,只备份这个种子即可(大多数情况下的种子是通过 BIP44 生成了助记词,方便抄写),在支持 BIP32, BIP44 标准的钱包只需导入助记词即可导入全部的私钥。

    principle of avoiding address reuse: 提倡避免地址重复使用,当数字货币地址已经发生过一次转账就存在私钥泄漏的可能性。

    符合 BIP-32/BIP-44 标准的 HD 钱包

    上文提到 Deterministic wallets 能够通过一个种子推导出很多密钥,它基于 BIP32 标准实现,种子能够推导出主密钥 (master key), 主密钥推导出子密钥 (children keys),子密钥推导出孙密钥 (grandchildren keys), 以此递推。

    • 有树状特征的 HD 钱包非常适用于有组织结构的公司使用
    • HD 钱包能够在不需知道私钥的前提下生成大量的公钥,非常适用于只负责收款的服务

    BIP32 标准的种子是一个随机 16 字节的 16 进制的字符串。如果能够适用英文单词作为助记词无疑会降低种子备份及恢复钱包难度,BIP39 标准就是为了解决助记词的需求,通过随机生成 12 ~ 24 个容易记住的单词,单词序列通过 PBKDF2 与 HMAC-SHA512 函数创建出随机种子作为 BIP32 的种子。

    BIP32/BIP39 标准详解

    BIP39 标准定义了钱包助记词和种子生成规则。

    通过九个步骤即可生成钱包助记词和种子:

    • 步骤 1~6 生成助记词
    • 步骤 7~9 把前六步生成的助记词转化为 BIP32 种子

    生成助记词

    1. 规定熵的位数必须是 32 的整数倍,所以熵的长度取值位 128 到 256 之间取 32 的整数倍的值,分别为 128, 160, 192, 224, 256;
    2. 校验和的长度为熵的长度/32 位, 所以校验和长度可为 4,5,6,7,8 位;
    3. 助记词库有 2048 个词,用 11 位可全部定位词库中所有的词,作为词的索引,故一个词用 11 位表示,助记词的个数可为 (熵+校验和)/11,值为 12,15,18,21,24

    熵(bits)校验和(bits)熵 + 校验和 (bits)助记词长度128413212160516515192619818224723121256826424

    1. 生成一个长度为 128~256 位 (bits) 的随机序列(熵)
    2. 取熵哈希后的前 n 位作为校验和 (n= 熵长度/32)
    3. 随机序列 + 校验和
    4. 把步骤三得到的结果每 11 位切割
    5. 步骤四得到的每 11 位字节匹配词库的一个词
    6. 步骤五得到的结果就是助记词串



    通过助记词生成种子

    助记词由长度为 128 到 256 位的随机序列(熵)匹配词库而来,随后采用 PBKDF2 function 推导出更长的种子(seed)。生成的种子被用来生成构建 deterministic Wallet 和推导钱包密钥。

    在密码学中,Key stretching 技术被用来增强弱密钥的安全性,增加了暴力破解 (Brute-force attack) 对每个可能密钥尝试攻破的时间,增强了攻击难度。各种编程语言原生库都提供了 key stretching 的实现。PBKDF2 (Password-Based Key Derivation Function 2) 是常用的 key stretching 算法中的一种。基本原理是通过一个为随机函数(例如 HMAC 函数),把明文和盐值作为输入参数,然后重复进行运算最终产生密钥。

    为了从助记词中生成二进制种子,BIP39 采用 PBKDF2 函数推算种子,其参数如下:

    • 助记词句子作为密码
    • "mnemonic" + passphrase 作为盐
    • 2048 作为重复计算的次数
    • HMAC-SHA512 作为随机算法
    • 512 位(64 字节)是期望得到的密钥长度

    DK = PBKDF2(PRF, Password, Salt, c, dkLen)



    BIP32 标准定义了 HD 钱包的生成规则。HD 钱包中的所有层级密钥都是由根种子推导而来,通常根种子由上述步骤 BIP39 生成。所以只需通过助记词就能备份和恢复钱包,这也是 HD 钱包的缺陷,如果你的根种子泄漏,那么全部密钥随之都泄漏。

    主私钥和主链码

    首先是从根种子生成主密钥 (master key) 和主链码 (master chain code)



    上图中根种子通过不可逆 HMAC-SHA512 算法推算出 512 位的哈希串,左 256 位是 Master Private key(m), 右 256 位是 master chain code, 通过 m 结合推导公钥的椭圆曲线算法能推导出与之对应的 264 位 master public Key (M)。chain code 作为推导下级密钥的熵。

    子私钥推导

    HD 钱包使用 CKD(child key derivation) 函数从父密钥(parent keys)推导子密钥(child keys),CKD 由下列三个要素做单向散列哈希(one way hash function) 。

    • 父密钥 (没有压缩过的椭圆曲线推导的私钥或公钥 ECDSA uncompressed key)
    • 链码作为熵 (chain code 256 bits)
    • 子代索引序号 (index 32 bits)



    索引号个数为 2 的 32 次方,每个父级密钥能推导出该数目一半的子密钥 (索引号从 0x00 到 0x7fffffff (0 to 2 的 21 次方减 1) 会生成正常的密钥;索引号从 0x80000000 到 0xffffffff 会生成增强密钥)。CKD 采用不可逆的 HMAC-SHA512 不可逆加密算法,子密钥不能向上推导出父密钥、同时也不能水平推导出同一级的密钥。

    扩展密钥

    CKD 推导子密钥的三个元素中,其中父密钥和链码结合统称为扩展密钥 (Extended keys)。256 位的密钥和 256 位的链码串联起来的 512 位就是扩展密钥

    1. 包含私钥的扩展密钥用以推导子私钥,从子私钥又可推导对应的公钥和比特币地址
    2. 包含公钥的扩展密钥用以推导子公钥

    扩展密钥使用 Base58Check 算法加上特定的前缀编码,编码得到的包含私钥的前缀为 xprv, 包含公钥的扩展密钥前缀为 xpub,相比比特币的公私钥,扩展密钥编码之后得到的长度为 512 或 513 位。

    子公钥推导

    上述方法中通过推导出的私钥可推导出对应公钥,但 HD 钱包非常好用的特征之一就是在隐藏私钥的前提下通过公钥推导出子公钥,极大加强安全性。在只需要生成地址接受比特币而无权消费的场景下非常有用,通过公钥扩展密钥能生成无穷尽的公钥和比特币地址。

    HD 钱包通过公钥推导子公钥的使用场景:在接受数字货币支付的电商系统中,Web 服务中集成了比特币扩展公钥服务,系统为客户的每笔订单生成一个接受比特币支付的地址,不涉及到私钥的 web 服务极大地减低了被盗币的可能性。如果不采用 HD 钱包,通常都是在物理隔绝的服务器中批量生成比特币地址,然后再导入到电商系统,这种方式需要定时生成并导入地址维护防止 web 服务系统把预先导入的地址用完。

    子私钥推导流程和子公钥流程基本一样,差异之处有两点:

    1. 把子私钥推导过程中私钥替换为公钥。
    2. 子公钥推导出对应出与之的子链码



    增强扩展密钥推导

    密钥需加强保管以免泄漏,泄漏私钥意味着对应的地址上的币可被转走、泄漏公钥意味着 HD 钱包的隐私被泄漏。增强密钥推导 (Hardened child key derivation) 解决下述两个问题:

    1. 虽然泄漏公钥并不会导致丢币,但含有公钥的扩展密钥泄漏会导致以此为根节点推导出来的扩展公钥全部泄漏,一定程度上破坏了隐私性。
    2. 泄漏扩展公钥加上该公钥推导出的后任一代扩展公钥对应的私钥有被推导出该扩展公钥的所有后代私钥的可能性

    于此,BIP32 协议把 CKD 函数改为 HKD (hardened key derivation formula) 生成增强密钥推导函数。

    CKD 函数以推导扩展密钥的序列号 ( 0x00 到 0x7fffffff)、父链码和父公钥生或父私钥成子链码和子公钥,子私钥从父私钥推导;而 HKD 通过父私钥、父链码和推导增强扩展密钥的序列号 (0x80000000 到 0xffffffff) 增强子私钥和增强子链码。



    HD 钱包密钥路径表示

    HD 路径密钥描述m/0从主私钥(m) 推导出的第一代的第一个子私钥m/0/0从第一代子密钥m(0)推导出的第二代第一个孙私钥m/0'/0从第一代增强密钥 (m/0')推导出得第二代第一个孙密钥m/1/0从第一代的第二个子密钥推导出的第二代第一个孙密钥

    参考和推荐阅读


    https://zhuanlan.zhihu.com/p/34184347
    展开全文
  • compositional-semantics是一个给定单词向量表示的组合函数学习。 一个特殊功能是检测和处理非组合短语。 系统要求 NumPy 和 SciPy 端到端流水线指令 输入:向量、上下文向量、PPDB 为了使事情更快,最好是在...
  • 钱包的原理-助记

    万次阅读 2018-06-07 17:10:56
    助记词表示长度为128至256位的熵。 通过使用密钥延伸函数PBKDF2,熵被用于导出较长的(512位)种子。 PBKDF2的基本原理是通过一个伪随机函数(例如HMAC函数),把明文和一个盐值作为输入参数,然后重复进行运算,并...

    首先,我们需要知道一点,比特币钱包里面并没有比特币。钱包是管理密钥、地址、跟踪余额和创建交易的软件。我们的比特币数据是存储在区块链上的,而不是在钱包里。
    经过前面几篇文章的解读,我们知道一个私钥生成公钥,公钥生成地址,这三者是一一对应的,就是一个私钥只有一个公钥和一个地址。但是我们在往交易所充币的时候,看到交易所为我们每个人生成一个独一无二的地址。这是怎么做的呢?接下来均益就来解读比特币的钱包。
    目前钱包分为两种,一种是非确定性(随机)的钱包,就是随机生成多个私钥,钱包管理这些私钥。如果需要成千上万的地址,通过随机的方式来生成私钥,这就需要存储那么多无规律的私钥,这样就很麻烦不好管理。另一种是确定性(种子)的钱包,就是通过种子可以生成无数的私钥,我们只需要记住种子就可以了。我们在使用钱包时记住的助记词可以生成种子,只要我们保管好助记词,我们的币就能找回来。那么问题来了?

    1. 种子是怎么来的?
    2. 种子是怎么生成无数地址的?

    带着这两个问题,我们来研究一下。先上一个大概图,然后我们再一步一步来解析


    钱包生成私钥

    主要流程是这样的

    第一,随机生成128到258位的随机数,我们这里叫做熵;
    第二,熵经过一定处理方法,生成助记词;
    第三,助记词经过密钥延伸函数PBKDF2,生成种子;
    第四,种子经过HMAC-SHA512算法,生成母密钥;
    第五,通过CKD(child key derivation)函数,母密钥生成众多子密钥。

    接下来均益一步步解析这里面的细节

    一、从熵到助记词

    1、随机生成一个128到258位的数字,叫做熵
    2、熵通过SHA256哈希得一个值,取前面的几位(熵长/32),记为y
    3、熵和y组成一个新的序列,
    4、将新序列以11位为一部分,已经预先定义2048个单词的字典做对应,单词的列表像这样的 https://github.com/trezor/python-mnemonic/blob/master/mnemonic/wordlist/english.txt
    5、生成的有顺序的单词组就是助记词
    如图:

    从熵到助记词

    二、从助记词生成种子

    助记词表示长度为128至256位的熵。 通过使用密钥延伸函数PBKDF2,熵被用于导出较长的(512位)种子。
    PBKDF2的基本原理是通过一个伪随机函数(例如HMAC函数),把明文和一个盐值作为输入参数,然后重复进行运算,并最终产生密钥。如果重复的次数足够大,破解的成本就会变得很高。而盐值的添加也会增加“彩虹表”攻击的难度。
    比特币钱包中,PBKDF2函数的第一个参数是助记词,第二个参数盐,由字符串常数“助记词”与可选的用户提供的密码字符串连接组成。使用HMAC-SHA512算法,使用2048次哈希来延伸助记符和盐参数,产生一个512位的值作为其最终输出。 这个512位的值就是种子。如图


    从助记词生成种子

    三、从种子到母密钥

    512位分成平均分成两部分,左边的256位为母私钥,右边的256位为链码。母私钥、链码和索引号,CKD(child key derivation)函数去从母密钥衍生出子密钥。如图


    从种子到主密钥

    三、从母密钥到子密钥

    母密钥、链码、索引合并在一起并且用HMAC-SHA512函数散列之后可以产生512位的散列。所得的散列可被拆分为两部分。散列右半部分的256位产出可以给子链当链码。左半部分256位散列以及索引码被加载在母私钥上来衍生子私钥。在图中,我们看到这个说明——索引集被设为0去生产母密钥的第0个子密钥(第一个通过索 引)。


    从主密钥到子密钥

    四、扩展密钥

    母密钥和链码结合叫做扩展密钥,拥有扩展私钥可以推导出子私钥,扩展公钥可以推导出子公钥。拥有扩展公钥就可以推导出子公钥,在服务器不需要母私钥也可以,这样就更安全更方便。但是还有一个问题,那就是扩展公钥包含有链码,如果子私钥被知道或者被泄漏的话,链码就可以被用来衍生所有的其他子私钥。简单地泄露的私钥以及一个母链码,可以暴露所有的子密钥。更糟糕的是,子私钥与母链码可以用来推断母私钥。
    为此,HD钱包使用一种叫做硬化衍生(hardened derivation)的替代衍生函数。这就“打破”了母公钥以及子链码之间的关系。这个硬化衍生函数使用了母私钥去推导子链码,而不是母公钥。这就在母/子顺序中创造了一道“防火墙”——有链码但并不能够用来推算子链码或者姊妹私钥。强化衍生函数看起来几乎与一般的衍生的子私钥相同,不同的是母私钥被用来输入散列函数中而不是母公钥。如图


    扩展密钥

    五、钱包索引

    1、前面说到索引和私钥链码可以生成子密钥,这个索引号码是32位的整数。为了区分密钥是从正常衍生函数中衍生出来还是从强化衍生函数中产出,这个索引号被分为两个范围。索引号在0和2^31–1(0x0 to 0x7FFFFFFF)之间的是只被用在常规衍生。索引号在231和232– 1(0x80000000 to 0xFFFFFFFF)之间的只被用在强化衍生。因此,索引号小于231就意味着子密钥是常规的,而大于或者等于231的子密钥就是强化型的。

    2、钱包索引识别路径
    HD钱包中的密钥是用“路径”命名的,且每个级别之间用斜杠(/)字符来表示(见表5-6)。由主私钥衍生出的私钥起始以“m”打头。由主公钥衍生的公钥起始以“M“打头。因此,母密钥生成的第一个子私钥是m/0。第一个公钥是M/0。第一个子密钥的子密钥就是m/0/1,以此类推。
    密钥的“祖先”是从右向左读,直到你达到了衍生出的它的主密钥。举个例子,标识符m/x/y/z描述的是子密钥m/x/y的第z个子密钥。而子密钥m/x/y又是m/x的第y个子密钥。m/x又是m的第x个子密钥。


    钱包密钥识别符(路径)
    展开全文
  • 表示对中文停用的汇总,适合于自然语言处理和搜索引擎的研究
  • 传送门:wordVectors开源算法实现word2vec向量生成 R语言中rword2vec和wordVectors均能实现word2vec向量生成,目前尚未研究两者之间的优劣(但从算法的description来看,建议用rword2vec) rword2vec...

    传送门:wordVectors开源算法包实现word2vec词向量生成

    R语言中rword2vec包和wordVectors包均能实现word2vec词向量生成,目前尚未研究两者之间的优劣(但从算法包的description来看,建议用rword2vec)

    rword2vec包是R与Google的word2vec接口,rword2vec将文本语料库作为输入,将单词向量作为输出。它首先根据训练文本数据构建词汇表,然后学习单词的矢量表示

    #安装rword2vec
    library('devtools')
    install_github('mukul13 / rword2vec')
    
    #训练word2vec模型
    #layer1_size 词向量维数
    #train_file 训练数据
    #binary,output format,1-binary,0-txt
    #cbow,skip-gram(0) or continuous bag of words(1)(cbow模型快一些,skip-gram模型效果好一些)
    #alpha:学习速率
    #output_file 结果输出文件即每个词的向量
    #window 训练窗口大小,5表示每个词考虑前5个词与后5个词
    #sample 词语出现频率的下限,0.00001 to 0.01(如果一个词在训练样本中出现的频率越大,那么就越会被采样)
    #min_count 设置最低频率为5,如果一个词语在文档中出现的次数小于该阈值,则舍弃该词
    #classes 词聚类簇个数,k-means聚类
    #num_threads 线程数
    model<-word2vec(layer1_size=50,train_file='corpus.txt',save_vocab_file='vocab.txt',binary=1,cbow=0,alpha=0,output_file='tian.bin',window=5,sample=0.00001,min_count=6,num_threads=2)
    
    #distance得到最接近的单词,file_name必须是二进制文件
    dist<-distance(file_name='tian.bin',search_word='原告',num=10)
    
    #在词向量空间中进行类比
    ana=word_analogy(file_name="tian.bin",search_words="paris france berlin",num=10)
    
    #训练word2phrase模型(将单词转化为短语,phrase.txt中短语由词和_组成)
    #可以使用这个phrase.txt训练word2vec模型
    word2phrase(train_file='corpus.txt',output_file='phrase.txt')
    
    #单词个数统计
    word_count<-read.table('vocab.txt')
    
    #bin to txt
    bin_to_txt("tian.bin","tian.txt")
    data<-as.data.frame(read.table("tian.txt",skip=1))

     

    展开全文
  • HPB钱包助记生成和备份

    千次阅读 2019-04-20 06:50:47
    助记生成 1 BIP32, BIP39, BIP44 BIP32:定义 Hierarchical Deterministic wallet (简称 “HD Wallet”),是一个系统可以从单一个 seed 产生一树状结构储存多组 keypairs(私钥和公钥)。好处是可以方便的备份、...
  • HD钱包的助记与密钥生成原理

    千次阅读 2018-04-17 17:37:17
    助记词库有 2048 个,用 11 位可全部定位词库中所有的,作为的索引,故一个用 11 位表示, 助记的个数可为 (熵+校验和)/11 ,值为 12,15,18,21,24 熵(bits)校验和(bits)熵 + 校验和 (bits)助记长度...
  • 袋模型是自然语言处理和信息检索中使用的简化表示。 在这种模型中,文本被表示为其单词的,不考虑语法,甚至不考虑单词顺序,但保持多重性。
  • Synonyms: 中文近义工具

    万次阅读 2018-02-20 12:06:13
    最好的中文近义工具: https://github.com/huyingxi/Synonyms/。 synonyms 可以用于自然语言理解的很多任务:文本对齐,推荐算法,相似度计算,语义偏移,关键字提取,概念提取,自动摘要,搜索引擎等。...
  • 什么是文本的嵌入?

    万次阅读 多人点赞 2018-11-21 11:30:52
     嵌入是单词的一种数值化表示方式,一般情况下会将一个单词映射到一个高维的向量中(向量)来代表这个单词。例如我们将:   ‘机器学习’表示为 [1,2,3]   ‘深度学习‘表示为[2,3,3]   ‘英雄联盟...
  • 一、什么是HD钱包: 它是分层确定性(Hierarchical Deterministic)钱包的缩写 HD Wallets,是目前广泛使用的虚拟货币钱包标准。HD钱包从单个根种子(root seed)中创建,为128到256位的随机数,任何兼容HD钱包的...
  • 什么是词向量?(NPL入门)

    万次阅读 多人点赞 2018-06-14 21:09:47
    什么是词向量? 我们组实训选择的主题是与自然语言识别相关的,那么就不得不学习和了解一下自然语言识别中非常重要和基础的。于是我对于自己对向量的学习进行了以下的总结。 简而言之,向量技术是将转化...
  • 在此模型中,文本(例如句子或文档)表示为其单词的(多集),而忽略了语法甚至单词顺序,但保持了多样性。 最近,袋模型也已用于计算机视觉。[1] 袋模型通常用于文档分类方法中,其中每个的出现频率用作...
  • 下面将围绕什么是词嵌入、三种嵌入的主要算法展开讲解,并通过案例具体讲解如何利用嵌入进行文本的情感分析。 什么是词嵌入? 嵌入实际上是一类技术,单个在预定义的向量空间中被表示为实数向量,每个单词...
  • 近日,Hai Liang Wang 和胡小夕在 GitHub 开放了一个中文近义工具 Synonyms,它可用于如文本对齐、推荐算法、相似度计算、语义偏移、关键字提取、概念提取、自动摘要、搜索引擎等很多 NLP 任务。...
  • 工具技术说明:该中文近义工具采用的基本技术是 Word2vec。Synonyms 的安装十分便捷,我们可以直接使用命令 pip install -U synonyms 完成。该工具兼容 Python 2 和 Python ...
  • 助记什么,有什么用?

    千次阅读 2019-02-04 19:36:34
    助记什么,有什么用?    玩加密货币的朋友相信对助记都不陌生,我们在使用钱包之前,会让你备份12个单词,在备份期间不允许截图操作,并且不断强调这12个单词非常重要,最好用物理方式备份,备份时身边...
  • Various Algorithms for Short Text Categorization
  • 的分布表示

    万次阅读 2016-10-29 18:00:41
    表示 One-hot Representation(独热表示) “苹果”表示为 [0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 …] 优点:简介,缺点:之间是孤立的,维数灾难。 Distributional Representation(分布式表示向量或者...
  • 在之前的文章我们拿银行来类比区块链钱包,今天我们还是拿银行来进行类比,看下这5个名词在银行系统中分别代表什么角色。 轻钱包——imToken 地址=银行卡。 在imToken中创建好钱包后,会生成一个0x开头的长度为42...
  • 最好的中文近义工具。synonyms可以用于自然语言理解的很多任务:文本对齐,推荐算法,相似度计算,语义偏移,关键字提取,概念提取,自动摘要,搜索引擎等。Table of Content:InstallUsageQuick Get ...
  • 向量,空间向量模型,源码,word2vec,ngram2vec
  • 在cips2016出来之前,笔者也总结过种类繁多,类似向量的内容,自然语言处理︱简述四大类文本分析中的“向量”(文本特征提取)事实证明,笔者当时所写的基本跟CIPS2016一章中总结的类似,当然由于入门较晚没有...
  • 综述 向量与分布式表示

    千次阅读 2020-02-21 17:18:55
    从古老的one-hot表示法,到大热的Word2vec系列的分布式表示方法,再到现在惊艳的预训练模型ELMo、BERT等,技术迭代迅速,这其中包含...1、表示 1、表示 1.1 离散表示(one-hot representation) 把每个...
  • 在之前的开篇提到了text2vec,...开篇内容参考:重磅︱R+NLP:text2vec——New 文本分析生态系统 No.1(一,简介) 文档可以以多种方式表达,单独词组、n-grams、特征hashing化的方法等。 一般来说文本分析的步骤有
  • 同义词词林(扩展版)

    千次下载 热门讨论 2010-05-18 11:11:28
    对于原版同义词词林,编码的第一个字母代表所属的大类,第二个字母代表中类,后两位字母代表小类。 同义词词林原版是梅家驹先生人工构造的,同义的原则应该是他老人家对这些的理解吧。同义的原则没有明确的...
  • 袋模型和向量模型

    万次阅读 多人点赞 2016-06-05 19:47:44
    本文简要介绍了袋模型、向量模型的原理和应用。
  • 一个维度是按不同粒度进行划分,语言具有一定的层次结构,语言表示可以分为字、、句子、篇章等不同粒度的表示。另一个维度是按表示形式进行划分,可以分为离散表示和连续表示两类。离散表示是将语言看成离散的符号...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 287,991
精华内容 115,196
关键字:

包是表示什么的词