У меня есть Pandas фрейм данных, содержащий ряд комментариев в социальных сетях, которые я хочу проанализировать с помощью Google NLP API. Документация Google только обсуждает (насколько я вижу), как классифицировать отдельные строки, а не несколько строк в одном запросе. Каждый запрос к API, классифицирующий один комментарий за раз, занимает около полсекунды, что очень медленно, когда я пытаюсь классифицировать более 10000 одновременно. Есть ли способ сделать список строк отдельно классифицированным, который, я уверен, будет значительно быстрее?
Это код, который я сейчас использую:
import numpy as np
import pandas as pd
from google.cloud import language
client = language.LanguageServiceClient()
def classify(string):
document = language.types.Document(content=string, type=language.enums.Document.Type.PLAIN_TEXT)
sentiment = client.analyze_sentiment(document=document).document_sentiment
return (sentiment.score, sentiment.magnitude)
def sentiment_analysis_df(df):
df['sentiment_score'] = np.zeros(len(df))
df['sentiment_magnitude'] = np.zeros(len(df))
for i in range(len(df)):
score, magnitude = classify(df['comment'].iloc[i])
df['sentiment_score'].iloc[i] = score
df['sentiment_magnitude'].iloc[i] = magnitude
# Other steps including saving dataframe as CSV are done here
Я видел два других поста здесь, которые задают подобные вопросы, здесь и здесь , но первый предполагает, что для разделения строк используются полные остановки (не верно в моем случае, так как создается много строк несколько предложений), а во втором есть ответы, в которых обсуждается ограничение скорости и стоимость.