在管道处理期间可以从 spaCy 文档中删除令牌吗?

2023-11-22

我正在使用 spaCy(一个很棒的 Python NLP 库)来处理许多非常大的文档,但是,我的语料库中有一些我想在文档处理管道中消除的常见单词。有没有办法从管道组件内的文档中删除令牌?


spaCy 的标记化是非破坏性的,因此它始终代表原始输入文本,并且从不添加或删除任何内容。这是一个核心原则Doc对象:你应该always能够重建和再现原始输入文本。

当你can解决这个问题,通常有更好的方法来实现同样的事情而不破坏输入文本↔Doc文本一致性。一种解决方案是添加一个自定义扩展属性 like is_excluded根据您想要使用的目标,添加到令牌:

from spacy.tokens import Token

def get_is_excluded(token):
    # Getter function to determine the value of token._.is_excluded
    return token.text in ['some', 'excluded', 'words']

Token.set_extension('is_excluded', getter=get_is_excluded)

当处理一个Doc,您现在可以对其进行过滤以仅获取未排除的标记:

doc = nlp("Test that tokens are excluded")
print([token.text for token if not token._.is_excluded])
# ['Test', 'that', 'tokens', 'are']

您还可以使用以下命令使其变得更复杂Matcher or PhraseMatcher在上下文中查找标记序列并将其标记为已排除。

另外,为了完整起见:如果您确实想更改中的令牌Doc,你可以通过构建一个新的来实现这一点Doc对象与words(字符串列表)和可选spaces(布尔值列表,指示标记后面是否有空格)。构建一个Doc使用词性标签或依赖标签等属性,您可以调用Doc.from_array方法,其中包含要设置的属性和值的 numpy 数组(所有 ID)。

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

在管道处理期间可以从 spaCy 文档中删除令牌吗? 的相关文章

随机推荐

  • CakePHP 数据库表,缺少默认数据源

    I found this类似的问题 但我的问题不同 我将 CakePHP 2 2 应用程序移至另一台服务器 迁移前不存在任何问题 迁移后大多数事情都运行良好 我可以访问我的大部分数据库表等 但是当我尝试访问我的其中一个表时 我收到此错误 E
  • 将 Sqlite BigInt 转换为日期

    我有一个 Sqlite 数据库 用作 Quartz net 调度程序作业的 ado net 作业存储 在一个表中 名为 START TIME 的列的类型为 big int 有没有办法将 bigint 转换或转换为日期值 我希望能够查询数据库
  • JSON - 无法使用 Jackson 序列化对象内的 JSONObject

    我有以下课程 class A String abc String def appropriate getters and setters with JsonProperty Annotation 我打电话给Jacksons objectMa
  • 如何防止未启用的 EditText 出现键盘

    我的活动有一个EditText据称 在用户单击屏幕的编辑按钮之前 该内容是不可编辑的 I did edit setEnabled false 但仍然会为用户显示一个键盘 并且可以将值添加到EditText通过键盘在屏幕上显示 即使屏幕可能看
  • json -c json_object_to_json_string 释放内存时

    我正在使用 json c 库将 json object 发送到客户端 我注意到没有本机函数来释放 json object to json string 分配的内存 该库会自动释放它吗 或者我必须 free str 以避免内存泄漏 我试图阅读
  • 服务定位器、依赖注入(和容器)和控制反转

    我已经编程有一段时间了 但从来没有兴趣从理论上了解每个概念的含义 我可能正在使用各种编程概念 但我并不知道 服务定位器 对我来说 指的是通过减少代码量来加快开发速度的捷径记录 一个问题是 定位器可以仅引用名称空间 类 或者我可以拥有变量注册
  • 从 Enum 中的类初始化一个新对象

    我有一个名为 Plugins 的枚举 public enum Plugins ROTATING LINE plugin rotatingline RotatingLine class SNOW SYSTEM plugin snow Snow
  • Selenium 仅在使用无头 Chrome 时无法定位元素(Python)

    我刚刚开始学习 Selenium 需要使用云中的 jenkins 机器验证登录网页 该机器没有 GUI 我设法在具有 UI 的系统上成功运行该脚本 然而 当我修改脚本以无头运行时 它失败说无法定位元素 我的脚本如下 usr bin env
  • 如何在 Thymeleaf 中执行 if-else 操作?

    做一个简单的最好方法是什么if else在百里香叶 我想在 Thymeleaf 中实现相同的效果
  • Apache ProxyPass 和会话

    因此 我使用 Apache 将特定文件夹代理到 Glassfish 实例 我的conf中的规则是 ProxyPass folder http localhost 28083 ProxyPassReverse folder http loca
  • Windows 禁止文件和文件夹名称的完整列表

    在 Windows 上 禁止使用 com1 txt 或 lpt1 txt 等文件名 是否有 Windows 上所有禁止的文件和文件夹名称的列表 或文件和文件夹名称中的禁止字符 例如 无效字符列表为 gt 大于 冒号 双引号 正斜杠 反斜杠
  • 如何重写WebServiceHostFactory MaxReceivedMessageSize?

    那里有很多类似的问题 但我已经尝试了每个问题中的每一种解决方案都无济于事 我们有一个使用 WebServiceHostFactory 初始化的 Web 服务 但如果向其抛出超过 64k 的数据 我们会收到 400 错误请求 通常 只需增加
  • 在 Angular 2 中打印 Html 模板(Angular 2 中的 ng-print)

    我想在 Angular 2 中打印 HTML 模板 我已经对此进行了探索 我在 AngularJS 1 中得到了解决方案在 Angularjs 中打印 Html 模板 1 任何建议将不胜感激 这就是我在 angular2 中所做的 它类似于
  • Django 对“MEDIA_ROOT”做了什么?

    Django 是做什么的MEDIA ROOT确切地 我一直不明白 由于 Django 本身不提供静态媒体 并且您必须为其设置 apache 或类似的东西 为什么它关心它位于哪个目录 您不是唯一一个想知道的人 查看姜戈票 10650 根据 D
  • 确定当前文本选择包含哪些 DOM 元素

    我希望能够找出用户当前在浏览器中选择的文本中存在哪些 DOM 元素 document getSelection 将为我们获取当前选定的文本 但是我们如何确定该文本选择中包含哪些 DOM 元素呢 window getSelection 给你一
  • 如何为设置包(Root.plist)的文本字段提供占位符

    我想为设置包 Root plist 的文本字段提供占位符 是否可以 如果可以 如何 提前致谢 恐怕目前这是不可能的 我也试图这样做 但似乎找不到任何可行的解决方案 如果有帮助 应该放置此内容的官方文档是here
  • 短路与非短路操作员

    我理解下面的区别 至少对于Java if true false short circuiting boolean operator if true false non short circuiting boolean operator 但我
  • 什么时候需要 ScriptManager/ScriptManagerProxy?

    我认为我无法找到明确的答案 所以我会在这里问 什么时候需要 ScriptManager 或者在母版页上使用 ScriptManager 的情况下需要 ScriptManagerProxy 例如 假设我在 MasterPage 上有一个 Sc
  • pywin32 和 Excel。写入大量数据时出现异常

    我目前正在尝试使用 pywin32 库将大量数据写入 Excel 电子表格 作为我面临的问题的一个简单示例 使用以下代码生成 1000 个单元格 x 1000 个单元格的乘法表 import win32com client from win
  • 在管道处理期间可以从 spaCy 文档中删除令牌吗?

    我正在使用 spaCy 一个很棒的 Python NLP 库 来处理许多非常大的文档 但是 我的语料库中有一些我想在文档处理管道中消除的常见单词 有没有办法从管道组件内的文档中删除令牌 spaCy 的标记化是非破坏性的 因此它始终代表原始输