Machine learning/NLP

[NLP]. Ray와 Sklearn Pipeline을 사용하여 Pandas 데이터 전처리하기

Acdong 2023. 4. 5. 15:25
728x90
import pandas as pd
import ray
import re
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import FunctionTransformer

# 예시 데이터프레임
df = pd.DataFrame({'question': ['Q1', 'Q2', 'Q3'],
                   'answer': ['<p>Answer 1</p>', '<span>Answer 2</span>', '<div>Answer 3</div>']})

# HTML 태그 제거 함수
@ray.remote
def remove_html_tags(text):
    clean_text = re.sub('<.*?>', '', text) # 정규식을 이용하여 HTML 태그 제거
    return clean_text

# 데이터프레임의 'answer' 칼럼에 ray를 사용하여 HTML 태그 제거하는 함수
def remove_html_tags_parallel(texts):
    return ray.get([remove_html_tags.remote(text) for text in texts])

# Pipeline 정의
pipeline = Pipeline([
    ('html_tags_removal', FunctionTransformer(remove_html_tags_parallel))
])

# 데이터프레임의 'answer' 칼럼에 Pipeline 적용
result = pipeline.fit_transform(df['answer'])

print(result)
반응형