迭代spacy标记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了迭代spacy标记相关的知识,希望对你有一定的参考价值。

一个让我难过的简单问题。我想迭代spacy标记并将每个标记与所有标记进行比较以获得与迭代器的相似性,而不是for循环。问题有点像有一个数字列表[1,2,3]并尝试将每个数字乘以包括其自身在内的每个其他数字,给出[1,2,3,2,4,6,3,6,9] ]。相反,我有:

import spacy
import itertools
nlp = spacy.load('en')

tokens = nlp(u'dog cat banana')

for token1 in tokens:
    for token2 in tokens:
        print(token1.similarity(token2))

嵌套的for循环有效,但应该有一种方法可以使用迭代器来实现更干净的代码。

答案

列表理解解决方案是:

[token1.similarity(token2) for token1 in tokens for token2 in tokens]

要么

[token1.similarity(token2) for token1, token2 in itertools.product(tokens, tokens)]

以上是关于迭代spacy标记的主要内容,如果未能解决你的问题,请参考以下文章

spaCy 2.0:保存并加载自定义NER模型

spacy词向量

spaCy:词汇中的单词

在spacy中,是否可以在匹配匹配中获取相应的规则ID

将自定义 NER 模型添加到 spaCy 管道

使用 BERT 的偏移量将实体添加到 spacy doc 对象