Twitter деректерін алу, Python 3.0 арқылы алдын ала өңдеу және көңіл-күйді талдау | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 30 ноября, печатный экземпляр отправим 4 декабря.

Опубликовать статью в журнале

Автор:

Рубрика: Молодой ученый O'zbekiston

Опубликовано в Молодой учёный №13 (303) март 2020 г.

Дата публикации: 25.03.2020

Статья просмотрена: 45 раз

Библиографическое описание:

Даулет, Сергей Жандосулы. Twitter деректерін алу, Python 3.0 арқылы алдын ала өңдеу және көңіл-күйді талдау / Сергей Жандосулы Даулет. — Текст : непосредственный // Молодой ученый. — 2020. — № 13 (303). — С. 260-264. — URL: https://moluch.ru/archive/303/68387/ (дата обращения: 16.11.2024).



Осы мақалада мен Twitter-дегі үш мәліметті үш кілт сөз + хэштегтермен бөліп-бөліп шығару үшін жасаған қадамдарым бойынша нұсқау беремін.

Түйінді сөздер: Twitter, файлдар, эмодзи, препроцессор

В этой статье я дам вам инструкции о шагах, которые я предпринял для разделения трех частей информации в Twitter с тремя ключевыми словами + хэштегами.

Ключевые слова: Twitter, файлы, эмодзи, препроцессор

Twitter — бұл мәліметтердің алтын кеніші. Twitter басқа әлеуметтік платформалардан айырмашылығы, барлық қолданушылардың твиттері жалпыға қол жетімді. Егер сіз үлкен көлемді деректерді аналитиканы іске қосу үшін алуға тырыссаңыз, бұл үлкен мүмкіндік. Twitter деректері ерекше. Твиттердегі соңғы жиырма минут ішінде белгілі бір тақырып бойынша әр твитті немесе белгілі бір пайдаланушының қайталанбайтын твиттерін тарту сияқты күрделі сұраулар жасауға мүмкіндік береді.

1.Кітапханаларды импорттау

from tweepy import Stream

from tweepy import OAuthHandler

from tweepy.streaming import StreamListener

import json

import pandas as pd

import csv

import re #regular expressionfrom textblob import TextBlob

import string

import preprocessor as p

2. Twitter есептік деректері

#Twitter credentials for the app

consumer_key = 'xxxxx'

consumer_secret = 'xxxx'

access_key= 'xxxx'

access_secret = 'xxxx'

3. Есептік деректер

Тіркелгі деректерін Twipty-тің 'auth' деп аталатын OAuthHandler данасына жіберіңіз, содан кейін жоғарыда жасалған access_key және, access_secret арқылы set_access_token әдісін қолданыңыз.

#pass twitter credentials to tweepyauth = tweepy.OAuthHandler(consumer_key, consumer_secret)

auth.set_access_token(access_key, access_secret)

api = tweepy.API(auth)

4. CSV файлдары үшін файл жолдарын жасаңыз

#declare file paths as follows for three filestelemedicine_tweets = «data/telemedicine_data_extraction/telemedicine_data.csv»epilepsy_tweets = «data/telemedicine_data_extraction/epilepsy_data.csv»heart_stroke_tweets = «data/telemedicine_data_extraction/heart_stroke_tweets_data.csv»

5. Нені алу керек?Бағандар.

#columns of the csv fileCOLS = ['id', 'created_at', 'source', 'original_text','clean_text', 'sentiment','polarity','subjectivity', 'lang',

'favorite_count', 'retweet_count', 'original_author', 'possibly_sensitive', 'hashtags',

'user_mentions', 'place', 'place_coord_boundaries']

6. Эмоциялар мен эмодзилерді басқарыңыз. Эмодзи тану.

Смайлики: Көңіл-күйімізді талдауға кедергі келтіретін сөйлемнің ортасында ескі мектеп смайликтарының қажеті жоқ болғандықтан (Happy (бақытты) & Sad (қайғылы)) бірнеше эмотикондар жариялайық.

#HappyEmoticons

emoticons_happy = set([

':-)', ':)', ';)', ':o)', ':]', ':3', ':c)', ':>', '=]', '8)', '=)', ':}',

':^)', ':-D', ':D', '8-D', '8D', 'x-D', 'xD', 'X-D', 'XD', '=-D', '=D',

'=-3', '=3', ':-))', ":'-)", ":')", ':*', ':^*', '>:P', ':-P', ':P', 'X-P',

'x-p', 'xp', 'XP', ':-p', ':p', '=p', ':-b', ':b', '>:)', '>;)', '>:-)',

'<3'

])

# Sad Emoticons

emoticons_sad = set([

':L', ':-/', '>:/', ':S', '>: [', ':@', ':-(', ': [', ':-||', '=L', ':<',

':- [', ':-<', '=\\', '=/', '>:(', ':(', '>.<', ":'-(", ":'(", ':\\', ':-c',

':c', ':{', '>:\\', ';('

])

6.2 Эмодзиді тану

Бұл қажет болғандықтан, қазіргі уақытта адамдар твиттерде смайликтерсіз жарияламайды, өйткені іс жүзінде бұл басқа тілге айналды, әсіресе жасөспірімдер арасында, сондықтан сіз бұл үшін жоспар құрып алуыңыз керек.

#Emoji patterns

emoji_pattern = re.compile(" ["

u«\U0001F600-\U0001F64F» # emoticons

u«\U0001F300-\U0001F5FF» # symbols & pictographs

u«\U0001F680-\U0001F6FF» # transport & map symbols

u«\U0001F1E0-\U0001F1FF» # flags (iOS)

u«\U00002702-\U000027B0"

u«\U000024C2-\U0001F251"

"]+", flags=re.UNICODE)

Содан кейін біз алдымен бақытты да, қайғылы эмотикондық массив тізімдерін біріктіреміз:

#combine sad and happy emoticonsemoticons = emoticons_happy.union(emoticons_sad)

7. Тазалау әдісі (Препроцессор)

Мұнда өңдеу екі әдіспен жүзеге асырылады:

1-әдіс: твитті алдын-ала процессорды пайдалану. Препроцессор дегеніміз — Python-да жазылған твит деректерін алдын-ала өңдейтін кітапхана. Осы твиттер негізінде машиналық оқыту жүйелерін құру кезінде алдын-ала өңдеу қажет. Бұл кітапхана твиттерді тазалауды, талдауды немесе таңбалауды жеңілдетеді.

2-әдіс: Мен қосарланған тексеру функциясын және твитті қайта өңдеу функциясын қолмен анықтадым және біздің деректер 100 % тазартылғанына сенімді болу әрқашан жақсы.

7.1 1-әдіс

import preprocessor as p

PS: Мен бұны 1-қадамда импорттағанмын (Кітапханаларды импорттау бөлімі)

Мысалы:

clean_text = p.clean(twitter_text)

7.2 2-әдіс

Clean_tweets (твит) деп аталатын әдісті жариялаңыз және бұл әдіс твиттер-алдын-ала процессордан жойылған твиттердегі кейбір мәліметтерді және қос тексерістен тұратын смайликтер мен эмодзилерді тазартады, өйткені мобильді эмотикондардың кейбір ескі нұсқалары твиттер алдындағы процессордың таза әдісінде қолданылмайды (1-әдіс).

def clean_tweets(tweet):

stop_words = set(stopwords.words('english'))

word_tokens = word_tokenize(tweet)#after tweepy preprocessing the colon symbol left remain after #removing mentions

tweet = re.sub(r':', '', tweet)

tweet = re.sub(r'…', '', tweet)

#replace consecutive non-ASCII characters with a space

tweet = re.sub(r' [^\x00-\x7F]+',' ', tweet)#remove emojis from tweet

tweet = emoji_pattern.sub(r'', tweet)#filter using NLTK library append it to a string

filtered_tweet = [w for w in word_tokens if not w in stop_words]

filtered_tweet = []#looping through conditions

for w in word_tokens:

#check tokens against stop words, emoticons and punctuations

if w not in stop_words and w not in emoticons and w not in string.punctuation:

filtered_tweet.append(w)

return ' '.join(filtered_tweet)

#print(word_tokens)

#print(filtered_sentence)return tweet

8. Твиттерді шығарыңыз

Twitter-дің API-не қосылу үшін біз Twitter API-ге кіру үшін өте жақсы қолдау көрсетілетін Tweepy деп аталатын Python кітапханасын қолданамыз. Ол Python 2.6, 2.7, 3.3, 3.4, 3.5 және 3.6 қолдайды. Твиттердің басқа API-лары де бар, бірақ мен Tweepy-ді ұсынамын, өйткені ол ешқашан қиындық тудырмады.

Мен төменде толық кодты орналастырып, маңызды бөліктерді бөліп, сол бөлік не үшін екенін сипаттаймын:

8.1 Әдістің басы

def write_tweets(keyword, file):

#If the file exists, then read the existing data from the CSV file.

if os.path.exists(file):

df = pd.read_csv(file, header=0)

else:

df = pd.DataFrame(columns=COLS)

#page attribute in tweepy.cursor and iteration

for page in tweepy.Cursor(api.search, q=keyword,

count=200, include_rts=False,

Бұл әдіспен мен екі параметр жасадым; біреуі файл атауына арналған, сонымен қатар үш түрлі файл бар, және де файлға толтырылатын үш кілт сөз бар, бұл екінші параметрді түсіндіреді.

8.2 JSON

Twitter API-ден алған нәтижеңіз JSON форматында болады және ақпараттың жеткілікті мөлшері бар.

for status in page:

new_entry = []

status = status._jsonif status ['lang']!= 'en':

continue

JSON талданған барлық мәліметтерді әр итерацияға сақтау үшін біз жаңа жол = [] жол атауын жасаймыз. Біз тек деректерді шығаруды жалғастырамыз, егер бұл тіл ағылшын тілі болса, маған осы кезеңде твиттер тілін тілге аударуда қиындық туғызбайды.

8.3 RT және FAV ауыстырыңыз

* кодты іске қосқан кезде, төменде берілген код соңғы жүктеуден кейін өзгертілген санын ауыстырады.

if status [‘created_at’] in df [‘created_at’].values:

i = df.loc [df [‘created_at’] == status [‘created_at’]].index [0]

if status [‘favorite_count’]!= df.at [i, ‘favorite_count’] or \

status [‘retweet_count’]!= df.at [i, ‘retweet_count’]:

df.at [i, ‘favorite_count’] = status [‘favorite_count’]

df.at [i, ‘retweet_count’] = status [‘retweet_count’]

continue

8.4 Алдын ала өңдеу уақыты

Енді твиттерді өңдеудің № 1 әдісін қолданатын кез келді.

clean_text = p.clean(status ['text'])

Қосымша өңдеу үшін clean_tweet-2 әдісін шақырыңыз.

filtered_tweet=clean_tweets(clean_text)

8.5 Сезім

Сезім сипаты Sentiment (полярлық, субъективтілік) пішінінің аталған жиынын қайтарады. Полярлық есеп — бұл [-1.0, 1.0] ауқымындағы өзгермелі. Ол субъективтілік — бұл [0.0, 1.0] ауқымындағы құбылыс, мұнда 0.0 өте объективті және 1.0 өте субъективті.

filtered_tweet түрлі айнымалыдағы сезім(sentiment), полярлық (polarity) және субъективтілікті(subjectivity) бөлек сақтадым.

blob = TextBlob(filtered_tweet)

Sentiment = blob.sentiment

polarity = Sentiment.polarity

subjectivity = Sentiment.subjectivity

8.6 All қосымшаны қосыңыз

JSON талданған деректерін біз жасаған жол массивіне қосыңыз:

new_entry += [status ['id'], status ['created_at'],

status ['source'], status ['text'],filtered_tweet, Sentiment,polarity,subjectivity, status ['lang'],

status ['favorite_count'], status ['retweet_count']]

Бұл қосымшалар — біз Tweepy-ті пайдаланып twitter-ден алынған деректер. Бірізділікті сақтау үшін біз автордың түпнұсқалық атын (твиттің твиттер профилі) жинаймыз.

new_entry.append(status ['user'] ['screen_name'])

8.7 NSFW мазмұны бар твиттер

Possible_sensitive твиттер мәліметтерінің бағаны Twitter-де NSFW мазмұнына арналған.

try:

is_sensitive = status ['possibly_sensitive']

except KeyError:

is_sensitive = None

new_entry.append(is_sensitive)

8.8 Хэштегтер және твиттің басқа пайдаланушылары

hashtags = ", ".join([hashtag_item ['text'] for hashtag_item in status ['entities'] ['hashtags']])new_entry.append(hashtags) #append the hashtagsmentions = ", ".join([mention ['screen_name'] for mention in status ['entities'] ['user_mentions']])new_entry.append(mentions) #append the user mentions

8.9 Твиттердің орналасқан жерін анықтаңыз

Мен твиттің орналасқан жерін бақылауға тырысамын, бірақ бұл оңай емес және мүмкін емес, өйткені қолданушылардың көпшілігі Twitter-ге әрқашан өз орындарына кіруге мүмкіндік бермейді. Бірақ мен бәрібір осылай жүрдім:

try:

coordinates = [coord for loc in status ['place'] ['bounding_box'] ['coordinates'] for coord in loc]

except TypeError:

coordinates = None

new_entry.append(coordinates)

«Твиттер-орналасуды» алу кезінде бізде кездесетін қиындыққа байланысты, мен твиттің орналасқан жерінің орнына пайдаланушының профилін біле алдым, өйткені ол негізінен пайдаланушы орналасқан аймақ пен ел туралы түсінік береді.

try:

location = status ['user'] ['location']

except TypeError:

location = ''

new_entry.append(location)

8.10 Деректер жинауды аяқтаңыз

Бітуге сәл қалды. Бізде қазір барлық қажетті мәліметтер бар, оны дерек қорына жақсылап орап алайық.

single_tweet_df = pd.DataFrame([new_entry], columns=COLS)

df_final = df.append(single_tweet_df, ignore_index=True)

9. CSV файлына жазыңыз

csvFile = open(file, 'a',encoding='utf-8')df.to_csv(csvFile, mode='a', columns=COLS, index=False, encoding=«utf-8")

10. Кілт сөздерді айтыңыз

telemedicine_keywords = '#telemedicine OR #telehealth OR #digitalhealth OR #ehealth OR #digitalpatient OR #digitaltransformation'Epilepsy_keywords = '#Epilepsy OR #epilepsyawareness OR #epilepsyaction OR #epilepsyalerts OR #epilepsybed OR #epilepsycongres OR #epilepsysurgery OR #epilepsysurgery OR #Epilepsytreatment OR #seizures OR #seizurefree'HeartDisease_keywords = '#HeartDisease OR #stroke OR #Stroking OR #strokepatient OR #StrokeSurvivor OR #hearthealth OR #Stroke OR #HeartFailure'

11. Біздің әдістерді қосу.

write_tweets(telemedicine_keywords, telemedicine_tweets)

write_tweets(Epilepsy_keywords, epilepsy_tweets)

write_tweets(HeartDisease_keywords, heart_stroke_tweets)

12. Біз жасаған CSV файлдарымен танысыңыз.

Основные термины (генерируются автоматически): CSV, JSON, NSFW, мена, FAV, NLTK, бар.


Ключевые слова

twitter, файлдар, эмодзи, препроцессор

Похожие статьи

RSA криптожүйесінде кілттерді генерациялау

Бұл мақалада RSA криптожүйесі және бұл жүйедегі p және q параметрлерінің ұзындықтарын дұрыс таңдау туралы, сонымен қатар олардың жай сан, не жай сан еместігін тексеретін ықтималды алгоритмдер қарастырылған.

Бұқашықтарды жайып семіртудің және бордақылаудың нәтижелері

Шығыс Қазақстан облысы «Нұр» шаруа қожалығында зерттеулер жүргізіліп, мақалада бордақылау және жайып-семірту технологияларын қолдану нәтижелері келтірілген.

Зиянды URL мекенжайлары және оларды анықтау әдістері

Мақалада зиянды URL мекенжайы тақырыбы зерттелген. Зиянды URL мекенжайларының түрлері және де оларды анықтаудың қара тізімге енгізу, машиналық оқыту, эвристикалық әдістері талданған.

Брендті нығайтудағы видео қызметтің рөлі

Бұл мақалада нарықтағы бәсекелестердің арасынан басымдылық алатын қызметтер жайлы. Жалпы брендті дамыту жайлы ақпараттар, жане оның тиімді жолдары жайлы айтылады.

Қазақстан Республикасындағы мемлекеттік сатып алу саласындағы мамандарды даярлау

Бұл мақалада мемлекеттік сатып алу саласындағы кадрлардың біліктілігінің жеткіліксіз болу себептері мен оларды даярлау мәселелері қарастырылады, сонымен қатар оларды шешудің мүмкін нұсқалары қарастырылған.

Танымал сүт өнімі — йогурт

Бұл мақалада сүт және өсімдік шикізатына негізделген йогурт өндіру технологиясы ұсынылған. Сүт және өсімдік шикізатын біріктіру арқылы жаңа пайдалы тамақ өнімдерін жасауға мүмкіндік береді.

Бағдарламалық қамтаманы тестілеуге талдау жасау

Алғашқы компьютерлердің пайда болуы — компьютерлік бағдарламалардың пайда болуына себеп болды. Ал бағдарламалау, кез-келген адам сияқты іс жүзінде қателіктерсіз жұмыс жасай алмайды. Бұл мақалада тестілеуге талдау жүргізіледі.

«Аударылған сынып» моделін іске асыру әдістемесін қалыптастырудың мазмұны

Мақалада «Аударылған сынып» технологиясын жүзеге асыру мәселелерінің ерекшеліктері қарастырылған. «Аударылған сынып» моделін білім беру процесінде тек онлайн оқыту жағдайында ғана емес, сонымен қатар офлайн форматта да кеңінен қолданылады. «Аударылға...

БҚО Орал қаласы, «Мирас» Шаруа қожалығындағы қолдан ұрықтандыру кезінде жіберілетін қателіктер

Жасанды ұрықтандыру- бұл ұрықты тікелей жатырға енгізу арқылы бедеулікті емдеу әдісі. Ғалымдар үй малын тез өсіру жолын жасады. Содан бері жануарлар адамдарға арналған техникаға бейімделе бастады.

Ұңғыманы пайдалануда құм көріністерімен күресу әдістері

Мақалада мұнай-газ өндіру саласындағы өзекті мәселелердің бірі қаралды. Құм көріністерімен күресудің заманауи әдістеріне, олардың артықшылықтары мен кемшіліктеріне талдау жасалды.

Похожие статьи

RSA криптожүйесінде кілттерді генерациялау

Бұл мақалада RSA криптожүйесі және бұл жүйедегі p және q параметрлерінің ұзындықтарын дұрыс таңдау туралы, сонымен қатар олардың жай сан, не жай сан еместігін тексеретін ықтималды алгоритмдер қарастырылған.

Бұқашықтарды жайып семіртудің және бордақылаудың нәтижелері

Шығыс Қазақстан облысы «Нұр» шаруа қожалығында зерттеулер жүргізіліп, мақалада бордақылау және жайып-семірту технологияларын қолдану нәтижелері келтірілген.

Зиянды URL мекенжайлары және оларды анықтау әдістері

Мақалада зиянды URL мекенжайы тақырыбы зерттелген. Зиянды URL мекенжайларының түрлері және де оларды анықтаудың қара тізімге енгізу, машиналық оқыту, эвристикалық әдістері талданған.

Брендті нығайтудағы видео қызметтің рөлі

Бұл мақалада нарықтағы бәсекелестердің арасынан басымдылық алатын қызметтер жайлы. Жалпы брендті дамыту жайлы ақпараттар, жане оның тиімді жолдары жайлы айтылады.

Қазақстан Республикасындағы мемлекеттік сатып алу саласындағы мамандарды даярлау

Бұл мақалада мемлекеттік сатып алу саласындағы кадрлардың біліктілігінің жеткіліксіз болу себептері мен оларды даярлау мәселелері қарастырылады, сонымен қатар оларды шешудің мүмкін нұсқалары қарастырылған.

Танымал сүт өнімі — йогурт

Бұл мақалада сүт және өсімдік шикізатына негізделген йогурт өндіру технологиясы ұсынылған. Сүт және өсімдік шикізатын біріктіру арқылы жаңа пайдалы тамақ өнімдерін жасауға мүмкіндік береді.

Бағдарламалық қамтаманы тестілеуге талдау жасау

Алғашқы компьютерлердің пайда болуы — компьютерлік бағдарламалардың пайда болуына себеп болды. Ал бағдарламалау, кез-келген адам сияқты іс жүзінде қателіктерсіз жұмыс жасай алмайды. Бұл мақалада тестілеуге талдау жүргізіледі.

«Аударылған сынып» моделін іске асыру әдістемесін қалыптастырудың мазмұны

Мақалада «Аударылған сынып» технологиясын жүзеге асыру мәселелерінің ерекшеліктері қарастырылған. «Аударылған сынып» моделін білім беру процесінде тек онлайн оқыту жағдайында ғана емес, сонымен қатар офлайн форматта да кеңінен қолданылады. «Аударылға...

БҚО Орал қаласы, «Мирас» Шаруа қожалығындағы қолдан ұрықтандыру кезінде жіберілетін қателіктер

Жасанды ұрықтандыру- бұл ұрықты тікелей жатырға енгізу арқылы бедеулікті емдеу әдісі. Ғалымдар үй малын тез өсіру жолын жасады. Содан бері жануарлар адамдарға арналған техникаға бейімделе бастады.

Ұңғыманы пайдалануда құм көріністерімен күресу әдістері

Мақалада мұнай-газ өндіру саласындағы өзекті мәселелердің бірі қаралды. Құм көріністерімен күресудің заманауи әдістеріне, олардың артықшылықтары мен кемшіліктеріне талдау жасалды.

Задать вопрос