Как обрезать все строки столбца датасета?
Есть задача: Сетнимент анализ по plot файла wiki_movie_plots_deduped.csv на английском bert
Пример датасета:
Планировал добавить столбец Sentiment, который определяет предобученная модель:
import pandas as pd
import seaborn as sns
import transformers
from transformers import pipeline
movie_df = pd.read_csv("wiki_movie_plots_deduped.csv", sep=',')
movies = movie_df
SentimentClassifier = pipeline("sentiment-analysis")
def FunctionBERTSentiment(inpText):
return(SentimentClassifier(inpText)[0]['label'])
movies['Sentiment']=movies['Plot'].apply(FunctionBERTSentiment)
Но питон ругается на размер строки:
The size of tensor a (760) must match the size of tensor b (512) at non-singleton dimension 1
Есть ли способ предварительно обработать столбец, обрезав все строки до максимального размера в 512 символов?
Ответы (1 шт):
Автор решения: Алексей Р
→ Ссылка
Обрезать строки в столбце фрейма можно с помощью pandas.Series.str.slice или, в сокращенной записи, str[]:
df = pd.DataFrame({'text':['a'*550,'b'*511,'c'*100]})
df['length'] = df.text.str.len()
print(df)
df.text = df.text.str.slice(0,512) # или df.text = df.text.str[:512]
df['length'] = df.text.str.len()
print(df)
text length
0 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... 550
1 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb... 511
2 cccccccccccccccccccccccccccccccccccccccccccccc... 100
text length
0 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... 512
1 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb... 511
2 cccccccccccccccccccccccccccccccccccccccccccccc... 100
