Как мне эффективно работать с несколькими большими кадрами данных? В настоящее время я просто использую функцию 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()
Однако в ограниченной вычислительной среде там, где это будет развернуто, для выполнения потребуется значительное время. Есть ли более эффективный способ применить модель ко всему фрейму данных?
Опорные фреймы данных меняются нечасто, поэтому я могу рассмотреть возможность предварительного вычисления значений данных и сохранения их на диске. Однако я бы предпочел, если это возможно, выполнить обработку вживую.
Любая помощь приветствуется. Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/786 ... -dataframe