Textblob возвращает нейтральный результат для всех отрицательных комментариев, используя задание aws glue pyspark - PullRequest
0 голосов
/ 30 апреля 2019

У меня проблема с сентиментальным анализом текстового шарика.Я написал код в pyspark, который работает на AWS Glue Spark.Проблема в том, что он возвращает нейтральный результат для отрицательных комментариев.Я попробовал тот же самый код на лямбде (с python2.7, python3.6 и python 3.7), aws склеил работу pythonshell, и на моей локальной машине библиотека прекрасно работает на них.но дает нейтральные результаты на задании AWS Glue Spark.

этот код будет возвращать результат против комментариев

import sys
import boto3
import json
import logging
import sys
import uuid
import json
import imp
import sys
sys.modules["sqlite"] = imp.new_module("sqlite")
sys.modules["sqlite3.dbapi2"] = imp.new_module("sqlite.dbapi2")
from textblob import TextBlob 
import re
import datetime

from awsglue.utils import getResolvedOptions
from awsglue.transforms import *
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
from pyspark.sql.functions import *
from pyspark.sql import SparkSession
from pyspark.sql import Row
from collections import OrderedDict



boto3.setup_default_session(region_name='us-east-1')

def clean_tweet(tweet): 
''' 
Utility function to clean tweet text by removing links, special 
characters 
using simple regex statements. 
'''
return ' '.join(re.sub("(@[A-Za-z0-9]+)|([^0-9A-Za-z \t]) |(\w+:\/\/\S+)", " ", tweet).split()) 


def get_tweet_sentiment(tweet): 
''' 
Utility function to classify sentiment of passed tweet 
using textblob's sentiment method

print("s",tweet)
analysis = TextBlob(clean_tweet(tweet)) 
print(analysis.sentiment.polarity)
if analysis.sentiment.polarity > 0: 
    return 'positive'
elif analysis.sentiment.polarity == 0: 
    return 'neutral'
else: 
    return 'negative'
...