import pandas as pd
import numpy as np
import re
import nltk
nltk.download('omw-1.4')
nltk.download('wordnet')
from nltk.corpus import stopwords
from nltk.tokenize import word\_tokenize
from nltk.stem import WordNetLemmatizer
from sklearn.feature\_extraction.text import TfidfVectorizer
from sklearn.model\_selection import KFold
from sklearn.utils.class\_weight import compute\_class\_weight
from sklearn.svm import SVC
from sklearn.metrics import f1\_score
from tqdm import tqdm

# Set seed value
np.random.seed(42)

# Load data
train\_df = pd.read\_csv('train.csv')
test\_df = pd.read\_csv('test.csv')

# Compute class weights
class\_weights = compute\_class\_weight(class\_weight='balanced', classes=np.unique(train\_df['label']), y=train\_df['label'])

# Define text pre-processing functions
def preprocess\_text(text):
 # Remove non-alphabetic characters
 text = re.sub(r'[^a-zA-Z\s]', '', text)
 # Convert to lowercase
 text = text.lower()
 # Tokenize
 tokens = word\_tokenize(text)
 # Remove stopwords
 tokens = [token for token in tokens if token not in stopwords.words('english')]
 # Lemmatize
 lemmatizer = WordNetLemmatizer()
 tokens = [lemmatizer.lemmatize(token) for token in tokens]
 # Join tokens back into a string
 text = ' '.join(tokens)
 return text

# Preprocess train and test text data with progress bar
with tqdm(total=len(train\_df), desc='Preprocessing train text') as pbar:
 train\_df['text'] = train\_df['text'].apply(lambda x: preprocess\_text(x))
 pbar.update(len(train\_df))

with tqdm(total=len(test\_df), desc='Preprocessing test text') as pbar:
 test\_df['text'] = test\_df['text'].apply(lambda x: preprocess\_text(x))
 pbar.update(len(test\_df))

# Define KFold cross-validation with progress bar
kf = KFold(n\_splits=5, shuffle=True, random\_state=42)
total\_iterations = kf.get\_n\_splits(train\_df) \* 2 # 2 iterations per fold (train and test)
with tqdm(total=total\_iterations, desc='KFold cross-validation') as pbar:
 f1\_scores = []
 for fold, (train\_index, val\_index) in enumerate(kf.split(train\_df)):
 X\_train, y\_train = train\_df.iloc[train\_index]['text'], train\_df.iloc[train\_index]['label']
 X\_val, y\_val = train\_df.iloc[val\_index]['text'], train\_df.iloc[val\_index]['label']

 tfidf = TfidfVectorizer()
 X\_train\_tfidf = tfidf.fit\_transform(X\_train)
 X\_val\_tfidf = tfidf.transform(X\_val)

 svm = SVC(class\_weight={i: w for i, w in enumerate(class\_weights)}, kernel='linear', random\_state=42)
 svm.fit(X\_train\_tfidf, y\_train)

 y\_val\_pred = svm.predict(X\_val\_tfidf)
 f1 = f1\_score(y\_val, y\_val\_pred, average='weighted')
 f1\_scores.append(f1)

 X\_test\_tfidf = tfidf.transform(test\_df['text'])
 y\_test\_pred = svm.predict(X\_test\_tfidf)
 test\_df[f'fold{fold+1}'] = y\_test\_pred
 
 pbar.update() # increment progress bar for train
 
 X\_train\_tfidf = None # free memory
 X\_val\_tfidf = None # free memory
 
 # repeat for test
 X\_test\_tfidf = tfidf.transform(test\_df['text'])
 y\_test\_pred = svm.predict(X\_test\_tfidf)
 test\_df[f'fold{fold+1}'] = y\_test\_pred
 
 pbar.update() # increment progress bar for test
 pbar.set\_postfix({'fold': fold+1, 'F1 score': f1})
 
 pbar.set\_description(f'Average F1 score: {np.mean(f1\_scores):.4f}')

test\_df['label'] = test\_df[[f'fold{fold+1}' for fold in range(5)]].mode(axis=1)[0]
test\_df[['id', 'label']].to\_csv('./0316\_test.csv', index=False)
print("Ensemble predictions completed.")

at this code there are any error? Debuging please
and at this code please all progress bar changing to update in real time
임포트 판다로 PDnumpy를 np로 임포트import reimport nltknltk.download('omw-1.4')nltk.download('wordnet')nltk.corpus에서 중지어 가져오기from nltk.tokenize import word\_tokenizenltk.stem에서 WordNetLemmatizer를 가져옵니다.sklearn.feature\_extraction.text에서 TfidfVectorizer를 가져옵니다.sklearn.model\_selection에서 KFold를 가져옵니다.sklearn.utils.class\_weight에서 compute\_class\_weight를 가져옵니다.sklearn.svm에서 SVC를 가져옵니다.sklearn.metrics에서 F1\_score 가져오기tqdm에서 tqdm 가져오기# 시드 값 설정np.random.seed(42)# 데이터 로드train\_df = pd.read\_csv('train.csv')test\_df = pd.read\_csv('test.csv')# 클래스 가중치 계산class\_weights = compute\_class\_weight(class\_weight='balanced', classes=np.unique(train\_df['label']), y=train\_df['label'])# 텍스트 전처리 함수 정의def preprocess\_text(text): # 알파벳이 아닌 문자 제거 text = re.sub(r'[^a-zA-Z\s]', '', text) # 소문자로 변환 text = text.lower() # 토큰화 tokens = word\_tokenize(text) # 중지어 제거 토큰 = [토큰이 stopwords.words('english')에 없는 경우 토큰의 토큰에 대한 토큰] # 렘매타이저 lemmatizer = WordNetLemmatizer() 토큰 = [lemmatizer.lemmatize(token) for token in tokens] # 토큰을 다시 결합합니다. # 토큰을 다시 문자열로 조인 text = ' '.join(tokens) 텍스트 반환# 진행률 표시줄을 사용하여 훈련 및 테스트 텍스트 데이터 전처리tqdm(total=len(train\_df), desc='전처리 훈련 텍스트')를 pbar로 사용합니다: train\_df['text'] = train\_df['text'].apply(lambda x: preprocess\_text(x)) pbar.update(len(train\_df))tqdm(total=len(test\_df), desc='전처리 테스트 텍스트')를 pbar로 사용합니다: test\_df['text'] = test\_df['text'].apply(lambda x: preprocess\_text(x)) pbar.update(len(test\_df))# 진행률 표시줄로 KFold 교차 검증 정의하기kf = KFold(n\_splits=5, shuffle=True, random\_state=42)총\_이터레이션 = kf.get\_n\_splits(train\_df) \* 2 # 폴드당 2회 반복(훈련 및 테스트)tqdm(total=total\_iterations, desc='KFold 교차 검증')을 pbar로 사용합니다: F1\_SCORES = [] for fold, (train\_index, val\_index) in enumerate(kf.split(train\_df)): X\_train, y\_train = train\_df.iloc[train\_index]['text'], train\_df.iloc[train\_index]['label'] X\_val, y\_val = train\_df.iloc[val\_index]['text'], train\_df.iloc[val\_index]['label'] tfidf = Tfidf벡터라이저() X\_train\_tfidf = tfidf.fit\_transform(X\_train) X\_val\_tfidf = tfidf.transform(X\_val) svm = SVC(class\_weight={i: w for i, w in enumerate(class\_weights)}, kernel='linear', random\_state=42) svm.fit(X\_train\_tfidf, y\_train) y\_val\_pred = svm.predict(X\_val\_tfidf) F1 = F1\_Score(Y\_VAL, Y\_VAL\_Pred, AVE 평균='가중치') f1\_scores.append(f1) X\_test\_tfidf = tfidf.transform(test\_df['text']) y\_test\_pred = svm.predict(X\_test\_tfidf) test\_df[f'fold{fold+1}'] = y\_test\_pred  pbar.update() # 열차에 대한 진행률 표시줄 증가  X\_train\_tfidf = None # 메모리 확보 X\_val\_tfidf = None # 메모리 사용 가능  # 테스트를 위해 반복 X\_test\_tfidf = tfidf.transform(test\_df['text']) y\_test\_pred = svm.predict(X\_test\_tfidf) test\_df[f'fold{fold+1}'] = y\_test\_pred  pbar.update() # 테스트 진행률 표시줄 증가 pbar.set\_postfix({'fold': fold+1, 'F1 score': f1})  pbar.set\_description(f'평균 F1 점수: {np.mean(f1\_scores):.4f}')test\_df['label'] = test\_df[[f'fold{fold+1}' for fold in range(5)]].mode(axis=1)[0]test\_df[[['id', 'label']].to\_csv('./0316\_test.csv', index=False)print("앙상블 예측 완료.")이 코드에 오류가 있나요? 디버깅해주세요.그리고 이 코드에서 모든 진행률 표시줄이 실시간으로 업데이트되도록 변경해 주세요.