ВНЕДРЕНИЕ ВЕКТОРА:
это метод изучения числовых представлений токена (слова), которые приблизительно соответствуют их лексическому значению. Эти представления изучаются с помощью наблюдаемых слов в контексте их появления в больших объемах данных.
Это обеспечивает слово с вектором, который определяет точку в пространстве вложения.
Spacy предоставляет предварительно обученные векторы слов для разных языков, например, модель lg English содержит полмиллиона токенов в словаре модели, и каждый из этих векторов является 300-мерным для кодирования информации.
Каждое слово представлено вектором, содержащим 300 точек с плавающей запятой, и эти векторы встроены в 300-мерное пространство.
import spacy nlp_lg = spacy.load('en_core_web_lg') # Define example sentence text = "Rafael Nadal didn't received fair result,he deserve unbiased referee." # Feed example sentence to the language model doc = nlp(text) # Call the variable to examine the output doc # Rafael Nadal didn't received fair result,he deserve unbiased referee. type(doc) # spacy.tokens.doc.Doc len(doc) # 13 doc[5],doc[10] # (fair, unbiased) len(doc[5].vector) # 300 doc[1].vector[:15] # array([ 1.3467e+00, 9.1509e-01, 7.4151e+00, 3.8017e+00, -2.8013e-01, 3.2007e+00, -1.4904e+00, 2.1186e+00, -2.0455e-01, -2.9672e+00, 3.0933e-02, 5.0042e-03, 3.6324e-01, -1.9395e+00, 2.2127e+00], dtype=float32)
В анализе данных косинусное сходство — это мера сходства между двумя последовательностями чисел. spaCy реализует меру косинусного подобия в методе Similarity(), который доступен для объектов Token, Span и Doc. Для косинусного подобия: https://en.wikipedia.org/wiki/Cosine_similarity
doc[10].similarity(doc[5]) # 0.42580273747444153p
давайте добавим второй текст, содержащий слово Fair, но с другим контекстом, чем первый текст, и мы увидим их сходство.
text_2 = "fun fair in the world cup" doc_2 = nlp(text_2) doc_2[1],doc[5] # (fair, fair) doc_2[1].similarity(doc[5]) # 0.11119375377893448
хотя это одно и то же слово, встраивание слов Spacy показало, что их контексты совершенно разные.