目的:将[ip-域名]数据embedding成向量, 并使用余弦相似度关联出相似域名。
数据:ip1 domain1/domain2/domain3.......
ip2 domain1/domain2/domain3.......
ip3 domain1/domain2/domain3.......
.....
其中,由于想保证数据的随机性,需要将域名数据随机打乱并生成不同顺序的几组数据。
代码:
import numpy as np
from gensim.models import word2vec
import os
from gensim.models import word2vec
import gensim
import logging
from mypathline import PathLineSentences
import random
def model_train(train_file_name, save_model_file): # model_file_name为训练语料的路径,save_model为保存模型名
# 模型训练,生成词向量
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
sentences = PathLineSentences(train_file_name) # 加载语料
model = gensim.models.Word2Vec(sentences, vector_size=100) # 训练skip-gram模型; 默认window=5
model.save(save_model_file)
model.wv.save_word2vec_format(save_