我正在字典中收集一些标记以供进一步使用。 问题是我需要一个令牌来扮演 None/NIL 的角色,以防我在文档中找不到我需要的东西来充当无值情况,即仍然具有所有属性(字符串值可以是一些特殊的字符)...即充当令牌,但不是来自文档的令牌。
有没有办法创建这样的Token?或者可以复制一些但修改 .dep_, .pos_ 等。
一种方法是创建一个仅包含一个字符(例如空格或 * 或您选择的任何其他字符)的文档,即 nlp('
empty_token = nlp('#')[0]
empty_token
是一个普通令牌,因此它具有所有属性。运行下面的代码会产生相应的输出:
print('text:', empty_token.text)
print('pos:', empty_token.pos_)
print('dep:', empty_token.dep_)
输出:
text: #
pos: SYM
dep: ROOT
我在创建一个空令牌时遇到了同样的问题,没有附加信息(没有文本,没有子项,没有依赖项等),但稍后由 spacy 模块调用,以避免在迭代多个令牌时代码崩溃,如果其中一次迭代未找到令牌。
我通过从给定文本创建索引为-1的令牌实例解决了这个问题:
text = "This is a very simple text."
doc = nlp(text)
empty_token = spacy.tokens.token.Token(nlp.vocab, doc, -1)
assert empty_token.text == ''
assert [t for t in empty_token.children] == []
empty_token
是一个普通的 token,它具有所有属性,但设置为空值。运行以下代码会产生空输出:
print('text:', empty_token.text)
print('pos:', empty_token.pos_)
print('dep:', empty_token.dep_)
# Output
# text:
# pos:
# dep: