Как эффективно применить «пространственную» модель для кодирования всего кадра данных «Pandas»?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как эффективно применить «пространственную» модель для кодирования всего кадра данных «Pandas»?

Сообщение Anonymous »

Я пытаюсь реализовать семантический поиск, при котором мне нужно сопоставить строку запроса с корпусом, присутствующим в кадре данных pandas. Я пытаюсь использовать функцию spacy и ее сходство для вычисления сходства между двумя элементами текста. Чтобы передать его в функцию сходства, сначала мне нужно закодировать весь кадр данных с помощью модели (здесь я использую предварительно обученный конвейер en_core_web_md для получения векторов).
Как мне эффективно работать с несколькими большими кадрами данных? В настоящее время я просто использую функцию pandas map, чтобы применить модель к каждому элементу в кадре данных.

Код: Выделить всё

import spacy
import pandas as pd
import nltk

nltk.download('words')

from nltk.corpus import words

def main():
query_string = "Eat Apple"

# Generate a sample corpus using words from nltk
data = [words.words()[:1000] for _ in range(5)]

df = pd.DataFrame(data).T

compute_semantic_match_score(df, query_string)

def compute_semantic_match_score(df, query):
model = spacy.load("en_core_web_md")

data_embeddings = df.map(model)
query_embedding = model(query)
match_scores = data_embeddings.map(query_embedding.similarity)
print(match_scores)

if __name__=="__main__":
main()
Здесь я использую образец данных, сгенерированный из корпуса nltk, для минимально воспроизводимого примера.
Однако в ограниченной вычислительной среде там, где это будет развернуто, для выполнения потребуется значительное время. Есть ли более эффективный способ применить модель ко всему фрейму данных?
Опорные фреймы данных меняются нечасто, поэтому я могу рассмотреть возможность предварительного вычисления значений данных и сохранения их на диске. Однако я бы предпочел, если это возможно, выполнить обработку вживую.
Любая помощь приветствуется. Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/786 ... -dataframe
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»