подсказки типа python для spaCy

#python #spacy

#python #spacy

Вопрос:

Я изо всех сил пытаюсь установить подсказки типа для всего, что связано с типами spaCy.

Пытаюсь использовать возвращаемые типы, такие как «Язык» и «Токен» из документации spaCy, но они, похоже, не работают … я на python 3.8.5.

В качестве примера, скажем, у меня есть это:

 import spacy

def load_lang() -> what_goes_here:
   return spacy.load("en_core_web_sm")
 

Согласно документам, это «возвращает язык».
Я пробовал Language или spacy.Языку не повезло.
У меня похожие проблемы при работе с токенами, например, при выполнении чего-то подобного:

return [token for token in doc if not token.is_stop]

Снова в документах упоминается «Возвращает токен» в качестве возвращаемого объекта, но я не могу ввести намек на это. Я не хочу переходить по списку [str] от ввода, поскольку я предполагаю, что это неправильный путь.

Любая помощь будет высоко оценена. Заранее благодарю вас.

Комментарии:

1. Вы пытались импортировать с помощью «из spacy. язык импортирует язык», а затем использует язык в качестве возвращаемого типа?

2. что именно произошло, когда вы указали Language в качестве подсказки типа?

3. Спасибо вам обоим за ответы. Если я просто использую язык или токен и т. Д. Я получаю ошибку имени: имя «Язык» не определено. Если я выполню дополнительный импорт в соответствии с комментарием daniboy, это сработает. Я предположил, что импорт spacy приведет к этому. Еще раз спасибо.

Ответ №1:

Не должно быть никаких проблем, если вы импортируете Language класс с помощью:

from spacy.language import Language

а затем используйте его в качестве подсказки типа:

 def load_lang() -> Language:
   return spacy.load("en_core_web_sm")
 

Комментарии:

1. Аналогично from spacy.tokens import Token , а затем используйте List[Token] в качестве аннотации для другой упомянутой функции.

2. Сработало как шарм. Спасибо! Я (ошибочно) предположил, что импорт spacy приведет к появлению соответствующих типов. Еще раз спасибо.