jieba分词以及word2vec词语相似度

 

jieba分词以及word2vec词语相似度

 

jieba分词以及word2vec词语相似度


去除 标点符号,

下一步 开始文本相似度计算:

Doc2Vec,Word2Vec文本相似度:https://blog.csdn.net/qq_33805714/article/details/109247752

 

 

 

from gensim.models import Word2Vec 
model = Word2Vec(sentences, sg=1, size=100, window=5, min_count=5, negative=3, sample=0.001, hs=1, workers=4)
参数解释:
1.sg=1是skip-gram算法,对低频词敏感;默认sg=0为CBOW算法。
2.size是输出词向量的维数,值太小会导致词映射因为冲突而影响结果,值太大则会耗内存并使算法计算变慢,一般值取为100到200之间。
3.window是句子中当前词与目标词之间的最大距离,3表示在目标词前看3-b个词,后面看b个词(b在0-3之间随机)。
4.min_count是对词进行过滤,频率小于min-count的单词则会被忽视,默认值为5。
5.negative和sample可根据训练结果进行微调,sample表示更高频率的词被随机下采样到所设置的阈值,默认值为1e-3。
6.hs=1表示层级softmax将会被使用,默认hs=0且negative不为0,则负采样将会被选择使用。
7.workers控制训练的并行,此参数只有在安装了Cpython后才有效,否则只能使用单核。

from gensim.models import word2vec

 

参考文章 : http://www.jb51.net/article/139690.htm , https://blog.csdn.net/YmeBtc/article/details/102527799

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Word2Vec是一种用于将单词转换为向量表示的技术,它可以用于计算文本中单词之间的相似度,也可以用于计算文本之间的相似度。以下是使用Word2Vec计算文本相似度的步骤: 1. 准备数据:将文本数据转换为单词列表,每个单词都是一个字符串。 2. 训练模型:使用Word2Vec模型训练单词向量。在训练过程中,模型将单词映射到一个高维向量空间中,使得语义相似的单词在向量空间中距离较近。 3. 计算文本向量:将文本中所有单词的向量取平均值,得到文本的向量表示。 4. 计算文本相似度:使用余弦相似度计算两个文本向量之间的相似度。余弦相似度的取值范围为[-1,1],值越接近1表示两个文本越相似,值越接近-1表示两个文本越不相似,值为0表示两个文本没有相关性。 以下是使用Python实现Word2Vec文本相似度计算的代码示例: ```python from gensim.models import Word2Vec import numpy as np # 准备数据 text1 = "I like to eat pizza" text2 = "I hate vegetables" text3 = "Pizza is my favorite food" texts = [text1.split(), text2.split(), text3.split()] # 训练模型 model = Word2Vec(texts, min_count=1) # 计算文本向量 def get_text_vector(text): words = text.split() vectors = [] for word in words: if word in model.wv.vocab: vectors.append(model.wv[word]) if len(vectors) == 0: return None else: return np.mean(vectors, axis=0) vector1 = get_text_vector(text1) vector2 = get_text_vector(text2) # 计算文本相似度 def cosine_similarity(vector1, vector2): if vector1 is None or vector2 is None: return None else: return np.dot(vector1, vector2) / (np.linalg.norm(vector1) * np.linalg.norm(vector2)) similarity = cosine_similarity(vector1, vector2) print("文本1和文本2的相似度为:", similarity) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值