Python 有没有更快的方式获得代币';从文档中获取索引?

Python 有没有更快的方式获得代币';从文档中获取索引?,python,arrays,list,numpy,spacy,Python,Arrays,List,Numpy,Spacy,给定一个令牌文本,即“is”,有没有更快的方法来获取其索引而不是迭代令牌列表?使用numpy数组可以更快 他们在文档字符串中说: def\uuu iter\uuu(self): 迭代Token对象,从中可以创建注释 易于访问。这是访问令牌对象的主要方式, 这是从Python访问注释的主要方式。如果更快- 如果不需要Python速度,您可以访问注释 或者直接从Cython访问底层C数据。[] 因此,基于此,您可以尝试: for token in doc: if token.text = 'i

给定一个令牌文本,即“is”,有没有更快的方法来获取其索引而不是迭代令牌列表?

使用
numpy
数组可以更快

他们在文档字符串中说:

def\uuu iter\uuu(self)

迭代
Token
对象,从中可以创建注释 易于访问。这是访问
令牌
对象的主要方式, 这是从Python访问注释的主要方式。如果更快- 如果不需要Python速度,您可以访问注释 或者直接从Cython访问底层C数据。[]

因此,基于此,您可以尝试:

for token in doc:
   if token.text = 'is':
       print(token.i)
速度快吗

import spacy
from spacy.attrs import ORTH

nlp = spacy.load("en_core_web_md")
text = "This is some text"
doc = nlp(text)

np_arr = doc.to_array(["ORTH"])
orth = nlp.vocab.strings["is"]
np.where(np_arr == orth)
#(array([1]),)


另外请注意,您可能对
tokens=nlp感兴趣,而不是
doc=nlp(text)

他们在文档字符串中说:

def\uuu iter\uuu(self)

迭代
Token
对象,从中可以创建注释 易于访问。这是访问
令牌
对象的主要方式, 这是从Python访问注释的主要方式。如果更快- 如果不需要Python速度,您可以访问注释 或者直接从Cython访问底层C数据。[]

因此,基于此,您可以尝试:

for token in doc:
   if token.text = 'is':
       print(token.i)
速度快吗

import spacy
from spacy.attrs import ORTH

nlp = spacy.load("en_core_web_md")
text = "This is some text"
doc = nlp(text)

np_arr = doc.to_array(["ORTH"])
orth = nlp.vocab.strings["is"]
np.where(np_arr == orth)
#(array([1]),)


另外请注意,您可能对
tokens=nlp.tokenizer(text)
@marlon感兴趣,而不是
doc=nlp(text)
,它是否回答了您的问题?有帮助吗?请考虑Malon是否回答了你的问题?有帮助吗?请考虑