답변:
실제로 NLP는 불균형 문제를 처리하는 많은 텍스트 분류 작업 (스팸 필터링, 모욕적 인 주석 탐지, 기사 분류 등)이 있으므로 데이터 재 샘플링이 필요한 가장 일반적인 영역 중 하나입니다. 그러나 SMOTE는 몇 가지 이유로 문제가있는 것 같습니다.
그래서 두 가지 접근 방식을 제안 할 수 있습니다.
1) 3-NN을 사용하여 부 클래스에서 데이터 샘플을 만들고 싶다고 가정합니다. 메이저 클래스를 무시하고 마이너 클래스 샘플 만 보관하십시오.
2) 피처 공간의 각 샘플 포인트에 대해 가장 가까운 5 개의 이웃을 선택합니다. 그런 다음 그중 3 개를 무작위로 선택하십시오 (불필요하게 복잡하지 않습니까? 원래 알고리즘을 설명하고 싶지 않다면 3 명의 이웃을 선택하십시오!)
3) 각 차원에 대해 샘플과 이웃 사이의 거리를 계산하고 0-1 사이의 난수로 곱한 다음 해당 차원에서 원래 샘플 값에 더합니다. (이 복잡한 단락은 각 차원마다 원래 샘플과 해당 이웃 사이에서 임의의 값을 선택한다는 것을 의미합니다!)
1) 전공을 무시하십시오. 실제 문서 길이 (단어 수 / 문구 수)에 따라 새 샘플을 생성 할 수 있도록 부 클래스의 모든 문서 길이 분포를 가져옵니다. 우리는 클래스의 크기를 3 배로 만들고 싶다고 가정합니다. 원본 문서 당 합성 문서)
2) 시퀀스 생성 해당 분포에 따른 임의의 정수. 새 합성 문서의 길이를 결정하는 데 사용됩니다.
3) 각 문서 : 임의 길이 순서에서 하나의 정수를 선택하고 길이가 정수에 가까운 임의의 문서. 모두의 토큰을 넣어 세트의 문서와 무작위로 선택 토큰 타임스. 이들은 당신의 새 문서.
더 많은 텍스트 / 문장 데이터를 추가하려는 경우 사전 훈련 된 단어 임베딩을 사용할 수 있습니다. 사전 훈련 된 모델은 각각의 모든 사전 단어의 단어 벡터 표현을 제공합니다. 또한 'most_smiliar'단어도 제공합니다.
TOP_N과 가장 유사한 단어로 각 단어마다 순열을 수행하여 샘플 문장을 사용하고 새 샘플을 생성 할 수 있습니다.
예를 들어 문장에 3 개의 단어가 있고 각 단어에 대해 가장 유사한 3 개를 선택하면 27 번까지 업 샘플링 할 수 있습니다.