2021SC@SDUSC
文章目录
本篇博客接上一篇,对Extract.py中Extract()函数剩余部分展开分析。
一、Extract函数部分解析说明
部分代码分段解析:
doc_emb = model.infer_vector(pre_list)
doc_emb = doc_emb / math.sqrt(sum([doc_emb[k]*doc_emb[k] for k in range(300)]))
rank=[]
rank2 = []
l = len(pre.split('.'))
absent_can = set() #声明absent关键词短语集合
for phrase in can_set:
phrase = phrase.split()
flg = 0
for w in phrase:
if w not in pre_list:
flg = 1
break
if flg==0:
absent_can.add(phrase) #构建absent关键词短语集合
解析:
- model.infer_vector()函数,推测文本向量。此处是使用gensim的doc2vec生成文档向量的应用。
doc2vec是word2vec的延伸,同样使用无监督方法利用上下文对词语和文档向量进行训练。
doc2vec的输入是TaggedDocument向量,它包括word_list和tags两部分,word_list是文档的分词列表,如[‘火箭’,‘是’,‘总冠军’,]。tags是文档的标签列表。
使用doc2vec训练过程如下:
document = TaggedDocdument(word_list,tags=label) # 创建TaggedDocument对象
model = Doc2Vec(dm=1, min_count=1, window=3, size=