감정 분석: 2022년 감정 분석 이면의 직관
게시 됨: 2021-01-02목차
소개
텍스트는 인간이 정보를 인지하는 가장 중요한 수단입니다. 인간이 얻는 지능의 대부분은 주변의 텍스트와 문장의 의미를 배우고 이해하는 것입니다. 특정 연령이 지나면 인간은 자신도 모르게 단어/텍스트의 추론을 이해하기 위해 내재적 반사를 발달시킵니다.
기계의 경우 이 작업은 완전히 다릅니다. 텍스트와 문장의 의미를 동화시키기 위해 기계는 자연어 처리(NLP)의 기초에 의존합니다. 자연어 처리를 위한 딥 러닝은 컴퓨터 비전이 이미지의 픽셀에 적용되는 패턴 인식과 같은 방식으로 단어, 문장 및 단락에 적용되는 패턴 인식입니다.
이러한 딥 러닝 모델 중 어느 것도 인간의 의미에서 텍스트를 진정으로 이해하지 못합니다. 오히려 이러한 모델은 많은 간단한 텍스트 작업을 해결하기에 충분한 서면 언어의 통계적 구조를 매핑할 수 있습니다. 감정 분석은 그러한 작업 중 하나입니다. 예를 들어 문자열 또는 영화 리뷰의 감정을 긍정적 또는 부정적으로 분류합니다.
이들은 업계에서도 대규모 애플리케이션을 가지고 있습니다. 예: 상품 및 서비스 회사는 제품 수명 주기에 따라 작동하고 판매 수치를 개선하고 고객 피드백을 수집하기 위해 특정 제품에 대해 받은 긍정적 및 부정적 리뷰 수에 대한 데이터를 수집하려고 합니다.
세계 최고의 대학에서 기계 학습 온라인 과정 을 배우십시오 . 석사, 이그 제 큐 티브 PGP 또는 고급 인증 프로그램을 획득하여 경력을 빠르게 추적하십시오.
읽기: 기계 학습 프로젝트 아이디어

전처리
감정 분석 작업은 간단한 지도 머신 러닝 알고리즘으로 나눌 수 있습니다 . 여기서 일반적으로 입력 X 가 있고 이는 그런 다음 예측을 실제 값 Y 와 비교하여 텍스트 처리 모델의 매개변수 이전에 볼 수 없었던 텍스트 스트림에서 감정을 추출하는 작업을 해결하기 위해 기본 단계는 별도의 긍정적 감정과 부정적 감정이 있는 레이블이 지정된 데이터 세트를 수집하는 것입니다. 이러한 감정은 좋은 리뷰 또는 나쁜 리뷰, 비꼬는 말 또는 비비꼬는 말 등일 수 있습니다.
다음 단계는 V 차원의 벡터를 만드는 것입니다 . 여기서 이 어휘 벡터는 데이터 세트에 있는 모든 단어 (단어가 반복되지 않음) 를 포함하고 참조할 수 있는 기계의 사전 역할을 합니다. 이제 중복을 제거하기 위해 어휘 벡터를 전처리합니다. 다음 단계가 수행됩니다.
- URL 및 기타 중요하지 않은 정보 제거 (문장의 의미를 결정하는 데 도움이 되지 않음)
- 문자열을 단어로 토큰화: "I love machine learning" 문자열이 있다고 가정합니다. 이제 토큰화하여 문장을 단일 단어로 분해하고 [I, love, machine, learning]과 같이 목록에 저장합니다.
- "and", "am", "or", "I" 등과 같은 불용어 제거
- 형태소 분석: 각 단어를 줄기 형태로 변환합니다. "tune", "tuning" 및 "tuned"와 같은 단어는 의미적으로 동일한 의미이므로 "tun"인 어간 형태로 줄이면 어휘 크기가 줄어듭니다.
- 모든 단어를 소문자로 변환
전처리 단계를 요약하기 위해 예를 살펴보겠습니다. "I am love new product at upGrad.com" 이라는 긍정적인 문자열이 있다고 가정해 보겠습니다 . 최종 사전 처리된 문자열은 URL을 제거하고 문장을 단일 단어 목록으로 토큰화하고 "I, am,, at"과 같은 중지 단어를 제거한 다음 "loving"을 "lov" 및 "product"로 형태소 분석하여 얻습니다. "produ"로 변환하고 마지막으로 모두 소문자로 변환하여 [lov, new, produ] 목록이 생성됩니다 .
특징 추출
말뭉치가 사전 처리된 후 다음 단계는 문장 목록에서 특징을 추출하는 것입니다. 다른 모든 신경망과 마찬가지로 딥 러닝 모델은 원시 텍스트를 입력으로 사용하지 않습니다. 숫자 텐서에서만 작동합니다.
따라서 사전 처리된 단어 목록을 숫자 값으로 변환해야 합니다. 이것은 다음과 같은 방법으로 할 수 있습니다. 다음과 같이 양수 및 음수 문자열이 포함된 문자열 컴파일이 제공된다고 가정합니다 (이를 데이터세트로 가정) .

양수 문자열 | 음수 문자열 |
|
|
이제 이러한 각 문자열을 차원 3의 숫자 벡터로 변환하기 위해 단어를 매핑하는 사전을 만들고 해당 클래스에 해당 단어가 나타난 횟수에 해당 단어가 나타난 클래스 (양수 또는 음수) 를 매핑합니다.
어휘 | 양의 주파수 | 음의 주파수 |
나 | 삼 | 삼 |
오전 | 삼 | 삼 |
행복하다 | 2 | 0 |
왜냐하면 | 1 | 0 |
학습 | 1 | 1 |
NLP | 1 | 1 |
슬퍼 | 0 | 2 |
~ 아니다 | 0 | 1 |
앞서 언급한 사전을 생성한 후 각 문자열을 개별적으로 살펴본 다음 문자열에 나타나는 단어의 양수와 음수 빈도 수를 합산하여 문자열에 나타나지 않는 단어를 남깁니다. '나는 슬프다, 나는 NLP를 배우고 있지 않다'라는 문자열을 가지고 3차원의 벡터를 생성하자.
“슬프다, 나는 NLP를 배우지 않고 있다”
어휘 | 양의 주파수 | 음의 주파수 |
나 | 삼 | 삼 |
오전 | 삼 | 삼 |
행복하다 | 2 | 0 |
왜냐하면 | 1 | 0 |
학습 | 1 | 1 |
NLP | 1 | 1 |
슬퍼 | 0 | 2 |
~ 아니다 | 0 | 1 |
합계 = 8 | 합계 = 11 |
"나는 슬프다, 나는 NLP를 배우고 있지 않다"라는 문자열에 대해 "행복하기 때문에"라는 두 단어만 어휘에 포함되어 있지 않다는 것을 알 수 있습니다. 이제 특징을 추출하고 해당 벡터를 생성하기 위해 양수 빈도와 음수 빈도를 합산합니다. 문자열에 없는 단어의 빈도 수를 제외하고 열을 별도로 분리합니다. 이 경우에는 "happy, 왜냐하면"를 남겨둡니다. 양의 주파수에 대해 8, 음의 주파수에 대해 9의 합을 얻습니다.

따라서 "나는 슬프다, 나는 NLP를 배우고 있지 않다"라는 문자열 은 벡터 인덱스 0에 있는 숫자 "1"은 앞으로 나올 모든 문자열에 대해 "1"로 유지되는 바이어스 단위이고 숫자 "8", "11"은 각각 양수 주파수와 음수 주파수의 합을 나타냅니다.
비슷한 방식으로 데이터 세트의 모든 문자열을 차원 3의 벡터로 편안하게 변환할 수 있습니다.
또한 읽기: 기계 학습 모델 설명
로지스틱 회귀 적용
특징 추출을 사용하면 문장의 본질을 쉽게 이해할 수 있지만 기계는 아직 보이지 않는 문자열을 양수 또는 음수로 표시하는 보다 명확한 방법이 필요합니다. 여기에서 벡터화된 각 문자열에 대해 0과 1 사이의 확률을 출력하는 시그모이드 함수를 사용하는 로지스틱 회귀가 작동합니다.
마지막 생각들
또한 기계 학습에 대해 자세히 알아보려면 작업 전문가를 위해 설계되었으며 450시간 이상의 엄격한 교육, 30개 이상의 사례 연구 및 과제를 제공하는 IIIT-B & upGrad의 기계 학습 및 AI 경영자 PG 프로그램을 확인하십시오. , IIIT-B 동문 자격, 5개 이상의 실용적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.