使用 Python 进行词嵌入:Wordc

使用 python 进行词嵌入:wordc

使用 python(和 gensim)实现 word2vec

注意:此代码是用 python 3.6.1 (+gensim 2.3.0) 编写的

word2vec与gensim的python实现及应用

import reimport numpy as npfrom gensim.models import word2vecfrom nltk.corpus import gutenbergfrom multiprocessing import poolfrom scipy import spatial

导入训练数据集从nltk库导入莎士比亚的哈姆雷特语料库

sentences = list(gutenberg.sents('shakespeare-hamlet.txt'))   # import the corpus and convert into a listprint('type of corpus: ', type(sentences))print('length of corpus: ', len(sentences))

语料库类型:类“list”
语料库长度:3106

print(sentences[0])    # title, author, and yearprint(sentences[1])print(sentences[10])

[‘[‘, ‘the’, ‘悲剧’, ‘of’, ‘哈姆雷特’, ‘by’, ‘威廉’, ‘莎士比亚’, ‘1599’, ‘]’]
[‘actus’, ‘primus’, ‘.’]
[‘弗兰’, ‘.’]

预处理数据

使用re模块预处理数据将所有字母转换为小写删除标点符号、数字等。

for i in range(len(sentences)):    sentences[i] = [word.lower() for word in sentences[i] if re.match('^[a-za-z]+', word)]  print(sentences[0])    # title, author, and yearprint(sentences[1])print(sentences[10])

[‘the’、’悲剧’、’of’、’哈姆雷特’、’by’、’威廉’、’莎士比亚’]
[‘actus’, ‘primus’]
[‘弗兰’]

创建和训练模型

创建 word2vec 模型并使用 hamlet 语料库对其进行训练关键参数说明(https://radimrehurek.com/gensim/models/word2vec.html)句子:训练数据(必须是带有标记化句子的列表)size:嵌入空间的尺寸sg: cbow 如果为 0,skip-gram 如果为 1窗口:每个上下文所占的单词数(如果窗口大小为3,考虑左邻域中的3个单词和右邻域中的3个单词)min_count:词汇表中包含的最小单词数iter:训练迭代次数workers:要训练的工作线程数量

model = word2vec(sentences = sentences, size = 100, sg = 1, window = 3, min_count = 1, iter = 10, workers = pool()._processes)model.init_sims(replace = true)

保存和加载模型

word2vec模型可以本地保存和加载这样做可以减少再次训练模型的时间

model.save('word2vec_model')model = word2vec.load('word2vec_model')

相似度计算

嵌入单词(即向量)之间的相似度可以使用余弦相似度等指标来计算

model.most_similar('hamlet')

[(‘horatio’, 0.9978846311569214),
(‘女王’, 0.9971947073936462),
(‘莱尔特斯’, 0.9971820116043091),
(‘国王’, 0.9968599081039429),
(‘妈妈’, 0.9966716170310974),
(‘哪里’, 0.9966292381286621),
(‘迪尔’, 0.9965540170669556),
(‘奥菲莉亚’, 0.9964221715927124),
(‘非常’, 0.9963752627372742),
(‘哦’, 0.9963476657867432)]

v1 = model['king']v2 = model['queen']# define a function that computes cosine similarity between two wordsdef cosine_similarity(v1, v2):    return 1 - spatial.distance.cosine(v1, v2)cosine_similarity(v1, v2)

0.99437165260314941

参考文献:

立即学习“Python免费学习笔记(深入)”;

原始论文:mikolov, t.、chen, k.、corrado, g. 和 dean, j. (2013)。向量空间中单词表示的有效估计。 arxiv 预印本 arxiv:1301.3781.

以上就是使用 Python 进行词嵌入:Wordc的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1349858.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月13日 13:44:57
下一篇 2025年12月13日 13:45:08

相关推荐

  • 使用 Python 进行网页抓取的初学者指南:最佳实践和工具

    网络抓取是在没有直接 api 可用时从网站收集数据的宝贵技能。无论您是提取产品价格、收集研究数据还是构建数据集,网络抓取都提供了无限的可能性。 在这篇文章中,我将使用 python 作为我们的主要工具,向您介绍网络抓取的基础知识、您需要的工具以及要遵循的最佳实践。 1. 什么是网页抓取? 网络抓取是…

    好文分享 2025年12月13日
    000
  • 使用 Python 进行词嵌入:docc

    使用 python(和 gensim)实现 doc2vec 注意:此代码是用 python 3.6.1 (+gensim 2.3.0) 编写的 doc2vec与gensim的python实现及应用 import reimport numpy as npfrom gensim.models impor…

    2025年12月13日
    000
  • 编写更好的 Python 代码的技巧

    您是否曾经将您的代码与经验丰富的开发人员的代码进行比较并感受到明显的差异?也许你的代码可以工作,但它看起来不像他们的那么干净或有组织。原因可能是因为经验丰富的开发人员坚持社区建立的最佳实践。这些做法在在线教程中经常被忽视,但它们对于编写高质量、可维护的代码至关重要。在本文中,我们将探讨基于这些最佳实…

    2025年12月13日
    000
  • Python 日志记录:最佳实践

    今天我们要讨论的事情就像看着油漆变干一样令人兴奋,但重要性却是它的两倍:Python 日志记录。 现在,我知道你在想什么。 “Nishant,我宁愿用叉子插在我的眼睛上,也不愿处理伐木问题。”嗯,很难,因为如果你想成为一名真正的程序员 – 你知道,那种不会花周末去寻找那个让整个开发团队发…

    2025年12月13日
    000
  • 利用 Python 实现数据输入自动化:开发人员指南

    数据输入虽然通常被认为是平凡的,但对于维护业务记录至关重要。但在自动化时代,开发人员可以在改变公司处理大量数据的方式方面发挥关键作用。 Python 拥有庞大的库生态系统,提供了强大的工具来自动执行数据输入任务,减少人为错误并提高效率。 为什么使用 Python 自动输入数据? Python 是一种…

    2025年12月13日
    000
  • 为另一个仓库做出贡献

    自本月初以来,我一直在努力学习在塞内卡理工学院学习的开源课程,我们的实验室之一是创建一个拉取请求,以便其他人的存储库并批准一个拉取请求你自己的仓库,所以这就是我要讨论的内容。 我将从我为某个问题创建的拉取请求开始。问题是添加对标志的支持,该标志允许查看请求和响应中使用了多少令牌:https://gi…

    2025年12月13日
    000
  • 好东西

    每周挑战 287 穆罕默德·s·安瓦尔 (mohammad s. anwar) 每周都会发出“每周挑战”,让我们所有人都有机会为每周两次的任务提出解决方案。我的解决方案首先用python编写,然后转换为perl。这对我们所有人来说都是练习编码的好方法。 挑战,我的解决方案 任务 1:强密码 任务 给…

    2025年12月13日
    000
  • Python 中的函数装饰器:理解 @property、Getter 和 Setter 方法

    在面向对象编程中,封装是一个基本概念,对于确保数据完整性和向用户隐藏实现细节至关重要。 python 以其简单性和可读性而闻名,它采用 getter 和 setter 作为封装的一部分。本文深入探讨了 python 中 getter 和 setter 的目的和实现,深入了解它们在管理数据访问和维护对…

    2025年12月13日
    000
  • 怎么用python爬虫做网页

    是的,可以使用 Python 爬虫爬取网页。具体步骤包括:安装 Scrapy 框架创建一个 Scrapy 项目定义需要从中提取数据的网页地址编写一个解析器来提取数据运行爬虫以收集数据存储提取的数据 如何使用 Python 爬虫爬取网页 使用 Python 爬虫爬取网页是一个获取网页内容的有效方法,用…

    2025年12月13日
    000
  • 怎么说python爬虫强大呢

    Python 爬虫的强大之处体现在以下方面:可扩展性,可轻松处理大量数据;跨平台兼容性,可在多种操作系统运行;丰富的生态系统,提供众多库和框架;易于学习,语法简单直观;多线程和异步支持,提高爬取速度;高性能,高效获取和解析网页;易于定制,满足特定需求;社区支持,提供丰富资源和支持。 Python 爬…

    2025年12月13日
    000
  • python爬虫怎么导入bs4

    要导入 BeautifulSoup4,请遵循以下步骤:使用 pip 进行安装:pip install beautifulsoup4导入 bs4 模块:from bs4 import BeautifulSoup创建 BeautifulSoup 对象:soup = BeautifulSoup(html_…

    2025年12月13日
    000
  • python爬虫怎么构建代理池

    构建 Python 代理池可通过以下步骤:收集代理,验证可用性,管理代理池,轮询代理,更新代理池,监控代理池。以确保爬虫绕过反爬机制,提升爬虫效率。 Python构建代理池 构建有效的代理池对于爬虫任务至关重要,因为它可以绕过网站反爬或提升爬虫效率。在Python中构建代理池的方法如下: 一、收集代…

    2025年12月13日
    000
  • 使用 Python 抓取佐治亚州亚特兰大律师数据的技术指南

    在本指南中,我们将探讨如何使用 python 从法律网站上抓取律师数据,重点关注佐治亚州亚特兰大的律师。这些信息对于那些想要寻找律师、研究律师事务所或收集附近律师数据的人来说非常有价值。我们将使用流行的 python 库创建一个强大的抓取工具,可以帮助您收集亚特兰大地区律师的信息。 先决条件在我们开…

    2025年12月13日
    000
  • 自学 Python 并找到梦想工作的最佳方式

    如果您决心在科技领域找到梦想的工作,学习 Python 是实现这一目标的最有效方法之一。 Python的多功能性和易学性使其成为想要进入该行业的自学者的首选。但自学 Python 的最佳方法是什么?面对如此多的可用资源和策略,选择正确的方法可能会让人感到不知所措。 本指南将引导您了解自学 Pytho…

    2025年12月13日
    000
  • PSD 批量编辑器

    大家好!我正在分享我在过去几个月开发的这个新软件。 我希望它可以帮助一些人,并且有些人可能有兴趣帮助我改进它。我想添加很多功能,请随时告诉我您希望在软件中看到什么。 在技术方面,我开始这个项目是为了尝试在我的代码中实现一些设计模式,并更好地构建架构。这也是我第一次使用QT(我在过去的GUI项目中使用…

    2025年12月13日
    000
  • 使用 Python 自动发送生日电子邮件

    在科技时代,自动化已成为一项基本技能,使我们能够简化重复性任务并提高生产力。自动化真正发挥作用的一个领域是电子邮件管理。作为一名渴望提高技能的 python 学习者,我最近开始了一个自动化生日电子邮件的项目。这个项目不仅为我提供了实践经验,还加强了python在日常任务中的实际应用。 灵感 这个项目…

    2025年12月13日
    000
  • 在 Windows 上使用 WSL2 将 Polars 与 NVIDIA GPU (CUDA) 结合使用

    首先,如果我错过了什么,或者做错了什么,或者如果您有疑问 ,请告诉我 步骤 wsl2 通过 window 商店安装任何 linux 发行版(例如 ubuntu 22.04)启动并创建用户通过在命令提示符或 powershell(在 windows 设备上)中运行此命令将 wsl 版本 2 设置为默认…

    2025年12月13日
    000
  • HandyHub – 您的首选商人目录

    HandyHub:将客户与可靠的商人联系起来 项目目的 HandyHub 旨在弥合客户与所在领域熟练商人之间的差距。我们的目标是简化寻找和雇用技工的流程,使客户更容易通过用户友好的平台获得管道、电气工作和维修等基本服务。 团队成员、角色和时间表 HandyHub项目是ALX SE计划最终项目的一部分…

    2025年12月13日
    000
  • 首次合作!

    在本周的实验中,我们的任务是通过 GitHub 为其他人的工作做出贡献。我们需要做的是在他们的项目中添加一个输出代币信息的新功能,并且我们需要使用命令行标志来触发该功能。 她的项目正在使用 OpenAI 为源代码创建自述文件。 第一个想法。 关于合作另一项工作,我的第一个想法是我需要学习他们的编码风…

    2025年12月13日
    000
  • 我的第一个开源贡献

    提交问题 对于我的第一个贡献,我提交了一个问题以向另一个项目添加新功能,即添加一个新的标志选项来显示用于提示和完成生成的令牌。 功能:聊天完成令牌信息标志选项 #8 克莱布恩特拉 发布于 2024 年 9 月 16 日 描述 一个标志选项,为用户提供发送和接收的令牌计数。我认为这是一个重要的功能,可…

    2025年12月13日 好文分享
    000

发表回复

登录后才能评论
关注微信