Python에서 TripAdvisor 리뷰를 위한 감정 분석 애플리케이션 설계

2777 단어 tutorialpython
감정 분석을 통해 리뷰, 댓글 등 텍스트의 주관성과 극성을 정량화할 수 있습니다.

주관성은 사실과 의견 사이의 문구에 점수를 매기는 반면 극성은 부정적인 맥락에서 긍정적인 맥락으로 점수를 매깁니다.

이 기사에서는 이를 사용하여 가져올 수 있는 실제 비즈니스 가치를 강조하는 TripAdvisor 리뷰의 점수를 매기는 방법을 보여드리겠습니다.

영어(및 플러그인이 있는 프랑스어, 독일어) 텍스트에 대해 이러한 분석을 수행하려면 textblob 패키지를 사용할 수 있습니다. 다음과 같이 간단합니다.

from textblob import TextBlob

TextBlob("This is very good!").sentiment
TextBlob("This is very bad!").sentiment
TextBlob("This isn't that bad!").sentiment


TextBlob "sentiment"속성은 극성과 주관성을 포함하는 튜플을 반환합니다. 극성은 [-1.0, 1.0] 범위의 숫자이며 1은 양수이고 -1은 음수입니다. 주관성은 [0.0, 1.0]의 숫자입니다. 여기서 0은 사실이고 1은 의견입니다.
>>> TextBlob("This is very good!").sentiment
Sentiment(polarity=1.0, subjectivity=0.7800000000000001)

Polarity 1이므로 매우 긍정적으로 평가되었고 주관성이 높아 사실보다 의견에 가깝습니다.
>>> TextBlob("This is very bad!").sentiment
Sentiment(polarity=-1.0, subjectivity=0.8666666666666667)

이 경우에 우리는 -1을 얻었고 실제로 매우 나쁩니다.
>>> TextBlob("This isn't that bad!").sentiment
Sentiment(polarity=-0.8749999999999998, subjectivity=0.6666666666666666)

컨텍스트가 없으면 TextBlob은 여전히 ​​부정적으로 평가했습니다. 실제로 "나쁘지 않다"는 것은 무엇을 의미합니까? 예상보다 더 나은? 예상보다 더 나쁜? 말하기 어렵고 더 유용한 정량화를 얻으려면 충분한 맥락이 있는 문장이 필요합니다.

트립어드바이저 리뷰



리뷰는 TextBlob을 사용해 볼 수 있는 좋은 텍스트입니다. 사전에 타사 스크래퍼를 사용하여 TripAdvisor에서 몇몇 장소에 대한 리뷰 세트를 가져왔습니다. 이것은 내가 라이브러리에 입력할 수 있는 리뷰 텍스트 목록을 제공하고 내가 얻는 결과를 확인했습니다. 극성을 시각화하기 위해 빨간색/녹색 색상을 -1/1에 할당하고 중간 값에 강도를 할당했습니다.





첫 번째로 표시된 리뷰는 부정적이며 사용자는 별 1개 리뷰를 남겼습니다. 마지막 것도 1성이지만 극성이 훨씬 높다. 고객이 만족하지 않더라도 리뷰에서 덜 부정적인 언어를 사용했습니다. 흥미로운 점은 중간 시장 검토입니다. 별점 5개 리뷰이지만 극성이 낮습니다. 고객은 만족했지만 만족하지 못한 점을 발견했습니다. 이러한 점은 장소에 대한 가치 피드백이 될 수 있지만 긍정적인 리뷰 사이에서 손실될 수 있습니다(4,5 평균적으로 부정적인 리뷰를 면밀히 살펴보는 반면 긍정적인 리뷰는 다른 긍정적인 리뷰 사이에서 사라질 수 있습니다.

코드는 Github에 있습니다.

https://github.com/riklaunim/sentiment-analysis-example

코드 설명이 포함된 전체 기사:

https://rk.edu.pl/en/designing-sentiment-analysis-application-tripadvisor-reviews-python/

좋은 웹페이지 즐겨찾기