Doc2Vec:区分句子和文档

2024-06-28

我只是在玩弄 gensim 的 Doc2Vec,分析 stackexchange 转储来分析问题的语义相似性以识别重复项。

教程关于Doc2Vec-教程 https://rare-technologies.com/doc2vec-tutorial/似乎将输入描述为标记句子。

但原论文:Doc2Vec-论文 https://arxiv.org/pdf/1405.4053.pdf声称该方法可用于推断段落/文档的固定长度向量。

有人可以解释一下在这种情况下句子和文档之间的区别,以及我将如何推断段落向量。

由于一个问题有时可能跨越多个句子, 我想,在训练过程中,我会给同一问题产生的句子赋予相同的标签,但是我该如何对未见过的问题进行 infer_vector 呢?

还有这个笔记本:Doc2Vec-笔记本 https://github.com/RaRe-Technologies/gensim/blob/develop/docs/notebooks/doc2vec-IMDB.ipynb

似乎是在 TRAIN 和 TEST 文档上训练向量,有人可以解释一下这背后的基本原理吗?我应该这样做吗?


Gensim 的 Doc2Vec 希望您提供与示例 TaggedDocument 类相同的对象形状的文本示例:同时具有words and a tags财产。

The words是文本的字符串标记的有序序列——它们可能是一个句子,或者一个段落,或者一个长文档,这取决于你。

The tags是要从文本中学习的标签列表 - 例如纯整数或字符串标记,它们以某种方式用于命名相应的文本。在最初的“段落向量”论文中,它们只是每个文本的唯一 ID – 例如从 0 单调递增的整数。(因此第一个 TaggedDocument 可能有一个tags刚刚的[0], 下一个[1], etc.)

该算法仅适用于文本块,而不知道句子/段落/文档等可能是什么。 (为了 Doc2Vec 的目的,只需将它们视为所有“文档”,然后由您从语料库中决定什么是正确类型的“文档”。)标记化甚至通常保留标点符号,例如句子之间的句点,作为独立标记。

推理通过以下方式发生infer_vector()方法,该方法采用强制参数doc_words,它应该是一个字符串标记列表,就像作为文本提供的那些标记一样words在训练中。

您无需在推断文本上提供任何标签:Doc2Vec 只是返回一个原始向量,该向量在模型学习到的关系中与文本很好地契合。 (也就是说:向量擅长预测文本的单词,就像批量训练期间学习的向量和内部模型权重擅长预测训练文本的单词一样。)

请注意,许多人通过增加可选参数从推理中发现了更好的结果steps参数(并可能减少推理开始alpha更像是批量训练的起始 alpha,0.025 到 0.05)。

doc2vec-IMDB 演示笔记本试图重现原始段落向量论文中的实验之一,因此它遵循其中所描述的内容,以及作者之一(Mikolov)曾经发布的演示脚本。由于“测试”文档(没有目标标签/已知情感)在训练时可能仍然可用,以帮助改进文本建模,因此在无监督 Doc2Vec 训练期间包含其原始文本是合理的。 (他们的已知标签是not在训练使用文档向量的分类器时使用。)

(请注意,目前,2017 年 2 月,doc2vec-IMDB 演示笔记本与当前 gensim Doc2Vec 默认值和最佳实践相比有点过时 - 特别是模型没有给出正确的明确说明iter=1值使以后的手动循环和-train()进行正确数量的训练。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Doc2Vec:区分句子和文档 的相关文章

  • 设置ntlk代理

    我正在关注第一章NLTK书 http www nltk org book ch01 html frequency distributions 它要求我们通过运行来安装图书语料库nltk dowwnload 我正进入 状态getattrinf
  • 贝塞尔曲线python的递归函数

    我被要求设计一个名为 Bezier 的递归函数 其参数是给定点的列表 以及必须评估的点 它返回贝塞尔曲线中由点列表的控制点定义的点 这是我所做的算法 def Bezier point list t if len point list 1 r
  • 如何在IDLE中同时运行两个模块

    我正在开发一个超级简单的套接字程序 我有客户端代码和服务器代码 如何同时运行这两个 py 文件以查看它们是否有效 您可以同时运行 IDLE Python shell 的多个实例 因此 打开 IDLE 并运行服务器代码 然后再次打开 IDLE
  • 命令错误,退出状态 1: python setup.py Egg_info 检查日志以获取完整的命令输出 - 通过 pip 安装 auto-py-to-exe 时

    我正在尝试在与我通常通过 pip 使用不同的 Windows 设备上下载 auto py to exe 但是 当运行时 我收到错误 抱歉 它太长了 ERROR Command errored out with exit status 1 c
  • pandas 支持 DataFrame 的哪些绘图后端?

    pandas 确实允许与第三方一起绘图绘制后端 https pandas pydata org pandas docs stable development extending html plotting backends 我知道matpl
  • f2py:公开“已使用”模块的参数

    我认为这个问题已经在某个地方得到解决 但我花了大量的时间四处寻找答案 包括深入研究源代码 我试图将问题放在第一段中 其余部分显示了问题的基本示例 我正在尝试编译一个包含USE指向另一个更通用的模块的语句 我更愿意将使用的模块分开 以便它可以
  • pandas.algos._return_false 在 CentOS 上使用 dill.dump_session 导致 PicklingError

    我有一个代码框架 其中涉及使用 dill 转储会话 这曾经工作得很好 直到我开始使用 pandas 以下代码在 CentOS 6 5 版本上引发 PicklingError import pandas import dill dill du
  • Scrapy在使用crawlerprocess运行时抛出错误

    我用 python 编写了一个脚本 使用 scrapy 来收集网站上不同帖子的名称及其链接 当我从命令行执行脚本时 它可以完美地工作 现在 我的意图是使用运行脚本CrawlerProcess 我在不同的地方寻找类似的问题 但我找不到任何直接
  • 调用exe中定义的函数

    我需要知道一种从 python 脚本调用 exe 中定义的函数的方法 我知道如何从 py 文件调用整个 exe 除非您的 EXE 是 COM 对象 或者像 dll 那样专门导出某些函数 否则这是不可能的 对于 COM 方法 请查看以下资源
  • 从 pexpect 中提取 stderr

    我的问题很简单 我可以吗 expect 使用 pexpect 查看 stderr 上的某些输出 它似乎pexpect spawn 只能用于期望 stdout 上的输出 乌托邦的例子 import pexpect child pexpect
  • Python 内存使用情况

    因此 我有一些代码接收一组文件 将其可以缝合在一起 然后绘制它们 我发布了大部分代码 试图使其更具可读性 如果需要 可以添加更多代码 for paths dirs files in os walk start path for d in d
  • TypedDict 中的 Python 任意键

    是否可以使用一组已知键创建 TypedDict 然后创建任意键的类型 例如 在 TypeScript 中 我可以这样做 interface Sample x boolean y number name string string Pytho
  • Python/Excel - IOError: [Errno 2] 没有这样的文件或目录:

    尝试从文件中提取 xlsx 文档并将数据编译到单个工作表中 尽管文件存在但仍收到 IOError 程序如下 loop that pulls in files from folder import os create directory fr
  • 如何在不破坏 DataFrame.append() 的情况下子类化或以其他方式扩展 pandas DataFrame?

    我有一个复杂的对象 我想围绕 pandas DataFrame 构建 我尝试使用子类执行此操作 但是即使在使用时 附加到 DataFrame 也会重新初始化新实例中的所有属性 metadata 按照推荐here https pandas p
  • tqdm 进度条和 colorama 不能一起工作

    我想使用 colorama 但我已经在代码中使用了 tqdm Example import colorama as color import tqdm as tqdm without line it s working print colo
  • 关闭Python线程以防止内存泄漏

    如何关闭 Python 线程以确保线程内内存中的所有内容都从内存中清除 目前 我有一个通过以下方式加入的线程列表 for t in threadlist t join 5 这些线程最初是通过循环传递给每个线程的参数列表来创建的myfunc它
  • Discord.py 提供角色的反应机器人

    我如何制作一个机器人 当人们对特定事物做出反应时 它可以为他们分配角色 到目前为止我有这个但它不起作用 client event async def on ready channel client get channel 513546504
  • 与 Pandas DataFrame 列表列的比较

    我有一个像这样的数据框 df col1 col2 a 1 2 b 3 4 c 3 9 我想根据匹配的输入数组获取行 因此如果我有数组 1 2 我可以获得 col1 col2 a 1 2 当我尝试使用此公式执行此操作时 它不起作用 df lo
  • 为什么 a.insert(0,0) 比 a[0:0]=[0] 慢很多?

    使用列表的insert函数比使用切片分配实现相同效果要慢得多 gt python m timeit n 100000 s a a insert 0 0 100000 loops best of 5 19 2 usec per loop gt
  • Python Json 返回 AttributeError: __enter__

    为什么这会返回 AttributeError enter 排序方法只是根据列表的排序方式创建的字符串 当前时间使用 stfttime current time strftime Y m d H M S gmtime filename f K

随机推荐

  • 迭代 numpy 矩阵行

    首先 我尝试在谷歌和网站中搜索来找到我的问题的答案 我认为这是非常基本的 但没有任何结果 我试图从 numpy 矩阵中获取行 但我不能 例如 如果我使用这个 result numpy matrix 11 12 13 21 22 23 31
  • ie7-8 的 Rem 后备

    我在所有 现代 网站中使用 rem 单位 为了使其与 ie7 8 兼容 我使用了 less 函数 font size 10 输出 font size 10px font size 1rem 由于我使用 rem 来处理实际的所有内容 宽度 顶
  • 如何处理 AWS Redshift unload 命令中的带引号的值?

    假设 遵循AWS docs https docs aws amazon com redshift latest dg r UNLOAD command examples html我想使用像这样的卸载命令 unload SELECT FROM
  • 如何在命令行中列出模块并检查函数是否存在?

    像许多 Windows 用户 一样 我不想花时间学习从源代码编译任何东西 所以 Lua 对于爱好者来说似乎是一个非常好的选择 抱歉 如果这是一个非常简单的问题 但是 Q1 如何列出解释器的任何给定实例可用的模块 有些二进制发行版有许多编译为
  • 如何在matplotlib中确定屏幕尺寸

    我正在寻找一种通用方法 使用 matplotlib 和任何交互式后端 例如 TkAgg Qt4Agg 或 macosx 来获取屏幕大小 以像素为单位 我正在尝试编写一个函数 它可以在屏幕上的一组标准位置打开一个窗口 例如屏幕的右半部分或右上
  • 为什么我的团队应该采用源代码控制? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有机会向我的老板正式介绍任何对公司有利的事情 我的想法是在我的工作场所采用源代码控制 我一直在使用 Mercurial 来管理我自己的工
  • 在 Excel 中使用宏进行多选,如何取消选择选择

    我需要使用 MultiSelect 下拉列表创建启用宏的 Excelsheet 用户选择下拉列表之一 然后将值附加到以逗号 分隔的单元格中 如果用户再次选择已经选择的值 则应将其从列表中删除 我能够通过以下代码实现它的第一部分 但无法实现第
  • 如何让 Url.Action 使用正确的端口号?

    我正在使用 MVC3 创建一个网站 我使用 razor 语法来创建视图 并且所有这些都在 azure 下运行 目前我在本地的azure模拟器下运行 我在以下网址查看 http localhost 81 Blah Foo http local
  • 在 React Native ios 应用程序中无法识别 fontFamily

    我正在努力获取我的字体 按开始2P 已加载 它是来自谷歌字体的字体 已多次执行以下步骤 以确保我没有马虎 从所有迹象来看 该字体应该在 React Native 应用程序中可用 在我的项目目录的根目录下创建了资产文件夹 在资产文件夹中创建字
  • 索引数据表

    我有一个Datatable其中包含数百万数据 数据表 创建索引之前 x x DateColumn Name x x 2014 01 02 10 01 03 A 2014 01 02 11 07 23 A 2014 01 03 07 12 1
  • docker Buildx“错误:BuildKit 已启用,但 buildx 组件丢失或损坏”错误

    当我尝试像往常一样使用 Docker 进行 Docker 构建时 我在映像中收到错误消息 并且无法构建 这种情况我该怎么办 顺便说一句 Docker的版本是23 0 1 https i stack imgur com AzgNi png h
  • 使用 PyPDF2 去除 PDF 上的水印

    This Section imports the necessary classes from the PyPDF2 library from PyPDF2 import PdfFileReader PdfFileWriter from P
  • 如何在组内推送多列的值

    看来我的查询不会像我期望的那样 我想分组name并将 location1 和 location2 映射到名为的数组中locations Data name Jack localtion1 Taiwan localtion2 France n
  • Docker:PHP 上传文件到已安装数据卷时权限被拒绝

    我正在使用 docker 快速启动终端Win10 Client Version 17 06 0 ce API version 1 30 Go version go1 8 3 Git commit 02c1d87 Built Fri Jun
  • MySQL聚合函数问题

    在下面的例子中 为什么min 查询返回结果 但是max 查询没有 mysql gt create table t id int a int Query OK 0 rows affected 0 10 sec mysql gt insert
  • iOS 7:使用 UINavigationController 作为子视图控制器的自定义容器视图控制器

    我想编写一个自定义全屏容器视图控制器 目的是将 UINavigationController 作为子视图控制器放入其中 UINavigationController 的视图将填充容器视图控制器的视图 以便看起来 UINavigationCo
  • Android WebView 不会滚动

    我有一个WebView在 Android 4 2 中加载一个本地 HTML使用javascript 放置在资产文件夹中 我的问题是 我无法在我的 WebView 中滚动任何 我通过类似的问题尝试了很多事情和建议 但没有任何效果 我的 Htm
  • 如何在 Google 脚本中输入提示 Google Types?

    我正在尝试在 Google Script 中输入一堆 javascript 并且我已经尝试了以下操作 Get named range given by name param String name return Range function
  • 如何在 Javascript 中创建类?

    这是我到目前为止所得到的 它根本不起作用 我的玩家类中的所有变量都是空的 并且更新永远不会被调用 我的意思是编程类 而不是 CSS 类 IE 不是 movi ngdiv 颜色 ff0000
  • Doc2Vec:区分句子和文档

    我只是在玩弄 gensim 的 Doc2Vec 分析 stackexchange 转储来分析问题的语义相似性以识别重复项 教程关于Doc2Vec 教程 https rare technologies com doc2vec tutorial