栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

spaCy的标记化 是非破坏性的 ,因此它始终代表原始输入文本,并且从不添加或删除任何内容。这是

Doc
对象的一种核心原理:您应该 _始终_能够重建和再现原始输入文本。

尽管 可以
解决此问题,但通常有更好的方法可以实现相同的目的而不破坏输入文本↔

Doc
文本一致性。一种解决方案是根据您要使用的任何目标,向令牌添加自定义扩展属性,例如
is_excluded

from spacy.tokens import Tokendef 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
PhraseMatcher
在上下文中找到标记序列并将其标记为已排除,从而使其更加复杂。

另外,出于完整性考虑:如果您确实想更改中的令牌

Doc
,则可以通过构造一个新的
Doc
对象来实现此目的,
words
该对象具有(字符串列表)和可选
spaces
(布尔值列表,指示令牌后跟空格还是空格)不)。要构造
Doc
具有词性标签或依赖项标签
Doc.from_array
之类的属性的,您可以调用具有要设置的属性和值(所有ID)的numpy数组的方法。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/610947.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号