使用gensim+jieba生成Word Embeddings

gensim+jieba实现Word Embeddings
本文介绍如何结合gensim和jieba库在自然语言处理中生成Word Embeddings,探讨Word2Vec的使用及其在gensim中的实现。

在自然语言处理中,使用Word2Vec来生成Word Embeddings是非常常用的一种做法,而gensim这个库提供了生成W2V的接口。

import os
import jieba
from gensim.models import Word2Vec

# 迭代器,使用jieba将句子进行分词
class Sentences(object):# 这个类可以根据实际情况重写,我已经将所有的文章进行分句,并整合到了一个文件里面
    def __init__(self, dirname):
        self.dirname = dirname # 句子所在文件,没句句子占一行
        jieba.load_userdict("wordBase.txt") # 加载词库

    
import jieba import re # 定义一个函数来读取中文文本文件并转换为句子列表 def read_chinese_file_to_sentences(file_path): with open(file_path, 'r', encoding='utf-8') as file: # 读取所有文本 text = file.read() # 使用正则表达式清洗文本,去除换行符和其他无关字符 text = re.sub(r'[^\s\d\w\u4e00-\u9fff]', '', text) text = re.sub(r'\s+', ' ', text) # 替换所有空白字符为一个空格 text = re.sub(r'\n', ' ', text) # 替换换行符为一个空格 # 使用jieba进行中文分词 words = jieba.cut(text) # 将分词结果转换为句子列表 sentences = [list(words)] return sentences # 文件路径 file_path = "C:\Users\hu'jun\Downloads\盗墓笔记(1-484章).txt" # 调用函数并获取句子列表 sentences = read_chinese_file_to_sentences(file_path) sentences[0] import gensim from gensim.models import Word2Vec from gensim.models.word2vec import Word2Vec # 训练Word2vec模型 model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, workers=4) # 获取单词的向量 word_vectors = model.wv # 保存模型,以便后续使用 model.save("sanguo_w2v.model") # 加载已保存的模型 loaded_model = Word2Vec.load("sanguo_w2v.model") import gensim from gensim.models import Word2Vec from gensim.models.word2vec import Word2Vec loaded_model = Word2Vec.load("sanguo_w2v.model") # 找出与某个词最相似的词 similar_words = loaded_model.wv.most_similar('女子') print("语义相似性:") for word, similarity in similar_words: print(f"{word}: {similarity:.4f}") # 进行类比推理 analogy_words = loaded_model.wv.most_similar( \ positive=['三叔', '潘子'], negative=['我'], topn=10) print(f"\n类比推理:三叔 - 盘子 + 我:") for word, analogy in analogy_words: print(f"{word}: {analogy:.4f}") 以此模型训练处的结果为基础生成应用,应用生成星系图,关键词16个,可自由发挥,再生成热力图关键词可自由发挥
最新发布
03-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值