词向量源码解析:(5.5)ngram2vec源码解析之pairs2vocab
来源:互联网 发布:打印机排版软件 编辑:程序博客网 时间:2024/06/01 21:48
之前说过对词向量很重要的一个改进方向就是引入更加丰富的上下文信息。所以中心词和上下文词典是应该不一样的。其实这里中心词也可以引入不同的信息,上下文也可以引入不同的信息。pairs文件中包含了后面所需要的所有信息源,所以我们通过1pairs文件,可以得到中心词和上下文词典。pairs左边的构成中心词词典,右边的构成上下文词典。
def main():
args = docopt("""
Usage:
pairs2vocab.py <pairs> <words> <contexts>
""")
print "**********************"
print "pairs2vocab"
words_path = args['<words>']
contexts_path = args['<contexts>']
words = {} #center word vocabulary//中心词词典
contexts = {} #context vocabulary//上下文词典
with open(args['<pairs>']) as f:
pairs_num = 0
print str(pairs_num/1000**2) + "M pairs processed."
for line in f://遍历pairs
pairs_num += 1
if pairs_num % 1000**2 == 0:
print "\x1b[1A" + str(pairs_num/1000**2) + "M pairs processed."
pair = line.strip().split()
if pair[0] not in words ://pair左边的进入中心词词典
words[pair[0]] = 1
else:
words[pair[0]] += 1
if pair[1] not in contexts ://pair右边的进入上下文词典
contexts[pair[1]] = 1
else:
contexts[pair[1]] += 1
words = sorted(words.iteritems(), key=lambda item: item[1], reverse=True)//按照词频排序,是pairs文件中的词频,不是corpus中的词频
contexts = sorted(contexts.iteritems(), key=lambda item: item[1], reverse=True)
save_count_vocabulary(words_path, words)//用接口往磁盘写单词
save_count_vocabulary(contexts_path, contexts)
print "words size: " + str(len(words))
print "contexts size: " + str(len(contexts))
print "number of pairs: " + str(pairs_num)
print "pairs2vocab finished"
中心词和上下文词典就得到了。这两份词典会被后面所有的模型使用,或者说被大量的重用,这也是把很多模型集成到一个工具包的好处。
- 词向量源码解析:(5.5)ngram2vec源码解析之pairs2vocab
- 词向量源码解析:(5.1)ngram2vec源码解析
- 词向量源码解析:(5.12)ngram2vec源码解析小结
- 词向量源码解析:(5.2)ngram2vec源码解析之uni_uni
- 词向量源码解析:(5.3)ngram2vec源码解析之corpus2vocab
- 词向量源码解析:(5.4)ngram2vec源码解析之corpus2pairs
- 词向量源码解析:(5.6)ngram2vec源码解析之pairs2counts
- 词向量源码解析:(5.7)ngram2vec源码解析之counts2shuf等
- 词向量源码解析:(5.8)ngram2vec源码解析之counts2ppmi等
- 词向量源码解析:(5.9)ngram2vec源码解析之word2vecf.py
- 词向量源码解析:(5.10)ngram2vec源码解析之glovef.py
- 词向量源码解析:(5.11)ngram2vec源码解析之中文analogy数据集
- 词向量源码解析:(6.6)fasttext源码解析之词向量1
- 词向量源码解析:(6.7)fasttext源码解析之词向量1
- 词向量源码解析:(2.1)word2vec源码解析
- 词向量源码解析:(2.7)word2vec源码解析小结
- 词向量源码解析:(3.1)GloVe源码解析
- 词向量源码解析:(3.6)GloVe源码解析小结
- 数据分析与数据挖掘的区别
- Ubantu安装Vim(VirtualBox虚拟机)
- Nginx学习之十二-负载均衡-加权轮询策略剖析
- 几种去重算法的实现
- csv文件数据导入到hive操作说明
- 词向量源码解析:(5.5)ngram2vec源码解析之pairs2vocab
- HTML meta标签总结与属性使用介绍
- mysql5.7 安装后启动服务,显示服务名无效
- 人生中第1个bug!已解决~
- arcgis js
- 素数的运用1
- 精益创业与MVP
- Counting Intersections HDU
- 28. Implement strStr()