词向量源码解析:(5.1)ngram2vec源码解析

ngram2vec是hyperwords的加强版本,解决了原工具包在大语料上的效率和内存问题,加入了ngram特征以提升词向量质量。它优化了整个流程,支持多线程和加速机制,并提供了GloVe模型。工具包包含word2vecf、glovef和ngram2vec核心代码,以及预处理和测试集。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前一个系列介绍了hyperwords工具包。这个工具包相对于word2vec和GloVe,有了很多新的特性,比如支持任意形式的上下文,比如加入了PPMI这样的稀疏的单词表示。这种稀疏的表示甚至在很多情况下的表现都超过了word2vec和GloVe。当然这个工具包还有不少的问题。首先是在大语料上面会有问题。比如在构建共现矩阵部分效率很低,在大语料上面跑不通。再比如构建词典是代码也没有考虑内存大小等等。然后这个工具包并没有GloVe模型。此外这个工具包bug有些多。我之前也联系过作者,这个工具包算是一个半成品。当然这些缺点并不妨碍这个工具包带给我们的启示。

针对这些缺点,一个在hyperwords的加强版本出现了。这个就是ngram2vec工具包,地址在ngram2vec(https://github.com/zhezhaoa/ngram2vec)。首先的一个改进是加上了ngram作为特征。我们知道词向量和语言模型的关系非常密切。语言模型中最重要的的特征就是ngram。因此在词向量中加入ngram是一个非常非常自然的事情,而ngram的加入也大大的提升了词向量的性质。当然这个工具包支持很随意的加入各种各样的特征。另外一个很重要的改进就是效率的提升。这个工具包比较好的对内存进行监控,能在有限的内存下生成词向量。这个工具包对hyperwords的几乎所有环节进行了优化。比如corpus2pairs中多线程提取pairs,pairs2counts中利用了mixed机制和stripes机制加速共现矩阵的构建,counts2ppmi中加速稀疏共现矩阵的建立等等等等。此外,这个工具包加入了glove模型,提供了glovef,在glove上面支持不同形式的上下文。在流程上面,ngram2vec基本上继承了hyperwords的思想࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值