У меня проблема с сентиментальным анализом текстового шарика.Я написал код в 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'