Text Metrics

Text Metrics는 모델의 성능을 평가하거나 텍스트 간의 유사성, 다양성 등을 측정하기 위해 사용되는 다양한 수치. 이러한 매트릭스는 텍스트 처리 작업의 결과를 정량적으로 평가하고, 모델의 개선점을 찾아내는데 중요한 역할을 함

  1. 정확도(Accuracy)
    정확도는 전체 샘플 중에서 모델이 올바르게 예측한 샘플의 비율을 나타냄. 텍스트 분류 작업에서 자주 사용되며, 가장 기본적인 평가 매트릭스 중 하나임

  2. 정밀도(Precision)
    정밀도는 모델이 긍정적으로 예측한 항목 중 실제로 긍정인 항목의 비율을 나타냄. 예를 들어, 스팸 이메일을 예측하는 모델에서 정밀도는 모델이 스팸으로 분류한 이메일 중 실제로 스팸인 이메일의 비율을 의미함

  3. 재현율(Recall)
    재현율은 실제 긍정 항목 중 모델이 긍정적으로 예측한 항목의 비율을 나타냄. 스팸 이메일 예에서 재현율은 실제 스팸 이메일 중 모델이 스팸으로 올바르게 분류한 이메일의 비율임

  4. F1 점수(F1 Score)
    F1점수는 정밀도와 재현율의 조화 평균으로, 두 매트릭스의 균형을 나타냄. 두 매트릭스 중 하나가 다른 것보다 훨씬 높을 때 발생할 수 있는 불균형을 조정하는 데 유용함

  5. BLEU Score(Bilingual Evaluation Understudy)
    BLEU 점수는 기계 번역의 품질을 평가하는 데 널리 사용되는 매트릭스. 번역된 텍스트와 하나 이상의 참조 번역 사이의 단어 또는 구의 일치를 측정함. BLEU점수는 0과 1사이의 값으로, 높을 수록 번역의 품질이 더 좋음을 의미함

  6. ROUGE Score(Recall-Oriented Understudy for Gisting Evaluation)
    ROUGE 점수는 주로 요약 작업에서 사용되며, 생성된 요약과 여러 참조 요약 사이의 오버랩(예: 단어, 구)를 측정함. ROUGE-N(단어 n-gram의 일치), ROUGE-L(가장 긴 고옹 부분열) 등 여러 변형이 존재함

  7. 편집 거리(Edit Distance)
    편집 거리(예 : 레벤슈타인 거리)는 한 문자열을 다른 문자열로 변환하기 위해 필요한 최소한의 문자 삽입, 삭제, 대체 작업의 수를 측정. 이 매트릭스는 텍스트 유사성 측정에 자주 사용됨

  8. 코사인 유사도(Cosine Similarity)
    코사인 유사도는 두 벡터 간의 코사인 각도를 사용하여 텍스트 간의 유사성을 측정함. 이 매트릭스는 텍스트 문서의 유사성을 비교하는 데 널리 사용됨

    Python Codes

    1.정확도(Accuracy), 정밀도(Precision), 재현율(Recall), F1점수(F1 Score)

from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
# 예측값과 실제값
y_true = [0, 1, 2, 2, 0]
y_pred = [0, 0, 2, 2, 0]

# 정확도
accuracy = accuracy_score(y_true, y_pred)
print(f"Accuracy: {accuracy}")

# 정밀도
precision = precision_score(y_true, y_pred, average='macro')
print(f"Precision: {precision}")

# 재현율
recall = recall_score(y_true, y_pred, average='macro')
print(f"Recall: {recall}")

# F1 점수
f1 = f1_score(y_true, y_pred, average='macro')
print(f"F1 Score: {f1}")

2.BLEU Score

from sacrebleu import corpus_bleu

# 실제 번역문과 참조 번역문
refs = [['The dog bit the man.', 'It was not unexpected.']]
sys = ['The dog bit the man.']

# BLEU 점수 계산
bleu = corpus_bleu(sys, refs)
print(f"BLEU Score: {bleu.score}")

3.ROUGE Score

from rouge import Rouge 

# 생성된 요약과 참조 요약
hypothesis = "The dog bit the man."
reference = "A dog bit a man."

rouge = Rouge()
scores = rouge.get_scores(hypothesis, reference)

print(f"ROUGE Scores: {scores}")

4.편집거리(Edit Distance)

from nltk.metrics.distance import edit_distance

# 비교할 문자열
str1 = "apple"
str2 = "appel"

# 편집 거리 계산
distance = edit_distance(str1, str2)
print(f"Edit Distance: {distance}")

5.코사인 유사도(Cosine Similarity)

from sklearn.metrics.pairwise import cosine_similarity
from sklearn.feature_extraction.text import TfidfVectorizer

# 비교할 문서
docs = ["The dog bit the man.", "The dog sat on the log."]

# TF-IDF 벡터화
vectorizer = TfidfVectorizer()
tfidf_matrix = vectorizer.fit_transform(docs)

# 코사인 유사도 계산
cosine_sim = cosine_similarity(tfidf_matrix[0:1], tfidf_matrix)
print(f"Cosine Similarity: {cosine_sim}")

이 코드들은 각 매트릭스를 계산하는 기본적인 방법들을 보여줌. 실제 응용 프로그램에서는 데이터 전처리, 모델 선택, 하이퍼파라미터 조정 등 여러 단계를 거쳐야 하며, 매트릭스의 선택도 프로젝트의 목적과 요구 사항에 따라 달라질 수 있음

profile
Data Scientist%%

0개의 댓글