감정 분석의 직관: 처음부터 감정 분석을 수행하는 방법?
게시 됨: 2020-12-07목차
소개
텍스트는 인간이 정보를 인지하는 가장 중요한 수단입니다. 인간이 얻는 지능의 대부분은 주변의 텍스트와 문장의 의미를 배우고 이해하는 것입니다.
특정 연령이 지나면 인간은 자신도 모르게 단어/텍스트의 추론을 이해하기 위해 내재적 반사를 발달시킵니다. 기계의 경우 이 작업은 완전히 다릅니다. 텍스트와 문장의 의미를 동화시키기 위해 기계는 자연어 처리(NLP)의 기초에 의존합니다.
자연어 처리를 위한 딥 러닝은 컴퓨터 비전이 이미지의 픽셀에 적용되는 패턴 인식과 같은 방식으로 단어, 문장 및 단락에 적용되는 패턴 인식입니다.
이러한 딥 러닝 모델 중 어느 것도 인간의 의미에서 텍스트를 진정으로 이해하지 못합니다. 오히려 이러한 모델은 많은 간단한 텍스트 작업을 해결하기에 충분한 서면 언어의 통계적 구조를 매핑할 수 있습니다. 감정 분석은 그러한 작업 중 하나입니다. 예를 들어 문자열 또는 영화 리뷰의 감정을 긍정적 또는 부정적으로 분류합니다.
이들은 업계에서도 대규모 애플리케이션을 가지고 있습니다. 예: 상품 및 서비스 회사는 제품 수명 주기에 따라 작동하고 판매 수치를 개선하고 고객 피드백을 수집하기 위해 특정 제품에 대해 받은 긍정적 및 부정적 리뷰 수에 대한 데이터를 수집하려고 합니다.
전처리
감정 분석 작업은 간단한 지도 머신 러닝 알고리즘으로 나눌 수 있습니다 . 여기서 일반적으로 입력 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의 벡터로 편안하게 변환할 수 있습니다.
더 읽어보기: Python을 사용한 감정 분석: 실습 가이드
로지스틱 회귀 적용
특징 추출을 사용하면 문장의 본질을 쉽게 이해할 수 있지만 기계는 아직 보이지 않는 문자열을 양수 또는 음수로 표시하는 보다 명확한 방법이 필요합니다. 여기에서 벡터화된 각 문자열에 대해 0과 1 사이의 확률을 출력하는 시그모이드 함수를 사용하는 로지스틱 회귀가 작동합니다.

그림 1: 시그모이드 함수의 그래픽 표기법
그림 1은 ta 와 또한 읽기: 상위 4개 데이터 분석 프로젝트 아이디어: 초급에서 전문가 수준
다음은?
감정 분석은 머신 러닝에서 필수적인 주제입니다. 그것은 여러 분야에서 수많은 응용 프로그램을 가지고 있습니다. 이 주제에 대해 자세히 알아보려면 블로그로 이동하여 많은 새로운 리소스를 찾을 수 있습니다.
반면에 포괄적이고 구조화된 학습 경험을 얻고 싶거나 기계 학습에 대해 더 배우고 싶다면 일하는 전문가를 위해 설계된 IIIT-B & upGrad의 기계 학습 및 AI PG 디플로마를 확인하십시오. 450시간 이상의 엄격한 교육, 30개 이상의 사례 연구 및 과제, IIIT-B 동문 자격, 5개 이상의 실용적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원을 제공합니다.
Q1. Random Forest 알고리즘이 기계 학습에 가장 적합한 이유는 무엇입니까?
Random Forest 알고리즘은 지도 학습 알고리즘의 범주에 속하며 다양한 기계 학습 모델을 개발하는 데 광범위하게 사용됩니다. 랜덤 포레스트 알고리즘은 분류 및 회귀 모델 모두에 적용할 수 있습니다. 이 알고리즘을 기계 학습에 가장 적합하게 만드는 것은 기계 학습이 대부분 데이터 하위 집합을 다루기 때문에 고차원 정보와 훌륭하게 작동한다는 사실입니다. 흥미롭게도 랜덤 포레스트 알고리즘은 의사 결정 트리 알고리즘에서 파생됩니다. 그러나 이 알고리즘은 특정 기능만 사용하기 때문에 의사결정나무를 사용하는 것보다 훨씬 더 짧은 시간에 이 알고리즘을 사용하여 훈련할 수 있습니다. 기계 학습 모델에서 더 큰 효율성을 제공하므로 더 선호됩니다.
Q2. 머신 러닝은 딥 러닝과 어떻게 다릅니까?
딥 러닝과 머신 러닝은 모두 우리가 인공 지능이라고 부르는 전체 우산의 하위 분야입니다. 그러나 이 두 하위 필드에는 고유한 차이점이 있습니다. 딥 러닝은 본질적으로 머신 러닝의 하위 집합입니다. 그러나 딥 러닝을 사용하면 기계가 비디오, 이미지 및 기타 형태의 비정형 데이터를 분석할 수 있으며, 이는 기계 학습만으로는 달성하기 어려울 수 있습니다. 머신 러닝은 최소한의 인간 개입으로 컴퓨터가 스스로 생각하고 행동할 수 있도록 하는 것입니다. 대조적으로, 딥 러닝은 기계가 인간의 두뇌와 유사한 구조를 기반으로 생각하도록 돕는 데 사용됩니다.
Q3. 데이터 과학자들이 랜덤 포레스트 알고리즘을 선호하는 이유는 무엇입니까?
랜덤 포레스트 알고리즘을 사용하면 많은 이점이 있으므로 데이터 과학자들 사이에서 선호되는 선택입니다. 첫째, 로지스틱 및 선형 회귀와 같은 다른 선형 알고리즘과 비교할 때 매우 정확한 결과를 제공합니다. 이 알고리즘은 설명하기 어려울 수 있지만 기본 의사 결정 트리를 기반으로 결과를 검사하고 해석하는 것이 더 쉽습니다. 새로운 샘플과 기능이 추가된 경우에도 이 알고리즘을 동등하게 쉽게 사용할 수 있습니다. 일부 데이터가 누락된 경우에도 사용하기 쉽습니다.