BRAIN-TR commited on
Commit
aed5812
·
1 Parent(s): 7141f75

Upload 9 files

Browse files
app.py ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Libraries
2
+ import streamlit as st
3
+ from PIL import Image
4
+
5
+ # Confit
6
+ st.set_page_config(page_title='AçıkHack2023TDDI', page_icon=':bar_chart:', layout='wide')
7
+
8
+ # Title
9
+ st.title('Teknofest 2023 Türkçe Doğal Dil İşleme Yarışması')
10
+
11
+ # Content
12
+
13
+ st.write(
14
+ """
15
+ Türkiye Açık Kaynak Platformu, Türkçe Doğal Dil İşleme konusunda farkındalık yaratmak amacıyla çevrimiçi
16
+ bir yarışma düzenliyor. Yarışma sırasında katılımcılardan verilen bir veri seti üzerinden aşağılayıcı
17
+ söylemlerin doğal dil işleme ile tespiti istenecektir.
18
+
19
+ Bu kullanıcı arayüzü, bu kapsamda geliştirilmiş olup çalışmalarımız sonucunda elde edilen model için tahmin,
20
+ canlı izleme ve geri bildirim gibi işlemleri gerçek ortamda test etmek amacıyla **Brain-Tr** takımı
21
+ tarafından geliştirilmiştir.
22
+
23
+ """
24
+ )
25
+
26
+ st.subheader('Metodoloji')
27
+ st.write(
28
+ """
29
+ Bu çalışma, yarışma kapsamında geliştirilen model öncelikle metin bazlı sınıflandırma işlemini **(Tahmin)**, daha
30
+ sonra sistemin canlı bir tweetter Hashtag ile test edilmesini **(Canlı İzle)**, bir sonraki aşamada tahmin işlemlerinde
31
+ kullanıcıdan gelen geri bildirimlerin toplanmasını **(Geri Bildirim)** ve son olarak geri bildirim ile toplanan
32
+ verilerin tekrar eğitime alınarak model performansının geliştirlmesini **(Model Eğitimi)** sağlamak üzere inşa
33
+ edilmiştir.
34
+
35
+ **TAHMİN** : Tahmin ekranı, kullanıcıdan alınan metnin, mesajın veya herhangi bir konuşma ifadesinin yarışma
36
+ kapsamında sınıflandırılan konular içerisinde ki durumunun tespit edilmesine yöneliktir. Kullanıcı modele verdiği
37
+ metne göre modelden gelen tahmini görecek,doğru olarak veya yanlışsa olması gereken sınıfı seçerek geri bildirimde
38
+ bulunacaktır.
39
+
40
+ **CANLI İZLE** : Canlı izleme ekranı, tweetter üzerinde ki bir konuyu takibe alarak sürekli dinleme ile gelen
41
+ mesajları modelde değerlendirerek bunun grafiksel ekranda takibini sağlayacaktır. Ayrıca burada takibe alınan konuda
42
+ ki mesajlar kaydedilerek belirli bir kategoriye giren mesajlar ve o mesajın sahibinin takibi sağlanacaktır.
43
+
44
+ **GERİ BİLDİRİM** : Geri bildirim ekranı, tahmin ekranında kullanıcı tarafından gönderilen mesajları ve o
45
+ kullanıcının etiketlediği sınıfların görüntülendi bölümdür. Burası veri görüntüleme ekranıdır.
46
+
47
+ **MODEL EĞİTİMİ** : Model eğitim ekranı, tahmin ekranında gelen kullanıcı geri bildirimlerini alarak modelin tekrar
48
+ eğitilmesini gerçekleştirecektir. Burada ki amaç model performasını kullanıcıdan gelen doğru bilgiler ışığında daha
49
+ yükseklere taşımaktır.
50
+
51
+ """
52
+ )
53
+
54
+
55
+ c1, c2, c3 = st.columns(3)
56
+ with c1:
57
+ st.info('**Data Analyst: [@Brain-Tr](https://github.com/tr-brain-com)**', icon="💡")
58
+ with c2:
59
+ st.info('**GitHub: [@Brain-Tr](https://github.com/tr-brain-com)**', icon="💻")
60
+ with c3:
61
+ st.info('**Data : [Eğitim Veri Kümesi](https://github.com/tr-brain-com/acikhack2023TDDI/tree/main/data)**', icon="🧠")
data.py ADDED
@@ -0,0 +1,262 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Libraries
2
+ import streamlit as st
3
+ import pandas as pd
4
+
5
+ # Data Sources
6
+ # @st.cache(ttl=1000, allow_output_mutation=True)
7
+ def get_data(query):
8
+ if query == 'Transactions Overview':
9
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/579714e6-986e-421a-85dd-c32a8b41b25c/data/latest')
10
+ # arbitrum = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/f06a4840-9310-41c7-b2b2-1c812884d728/data/latest')
11
+ # avalanche = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/d543922f-c8b6-4dc9-9caf-91954b3573d4/data/latest')
12
+ # axelar = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/4ff35680-e680-45c0-b6e9-2c63e6f92156/data/latest')
13
+ # bsc = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/97d2d421-ebda-4dae-87da-6f27b4478e52/data/latest')
14
+ # cosmos = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/8cac9410-e4de-4cbe-b146-c6f7f1f053dc/data/latest')
15
+ # ethereum = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/572f2d6e-4b65-47b7-9dd6-be0710c6e024/data/latest')
16
+ # flow = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/8a0d84a3-bb18-4815-a36e-850c719b10c3/data/latest')
17
+ # gnosis = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/e26eeb64-7bf2-42cb-9222-2e6d6483d053/data/latest')
18
+ # near = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/314e9e48-52ef-466c-a848-3e95957ee9fc/data/latest')
19
+ # optimism = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/72c31b05-ec16-4533-a2ec-409a49bbe492/data/latest')
20
+ # osmosis = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/20a3e7ff-fcf5-43f6-bc12-90a9544b55a0/data/latest')
21
+ # polygon = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/8ea10e70-c838-4a94-b1ef-0cb282e5ced1/data/latest')
22
+ # solana = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/e01d82cc-9b5d-4166-af72-6110f4947140/data/latest')
23
+ # return pd.concat(
24
+ # [arbitrum, avalanche, axelar, bsc, cosmos, ethereum, flow, gnosis, near, optimism, osmosis, polygon, solana]
25
+ # ).sort_values('Blockchain').reset_index(drop=True)
26
+
27
+ elif query == 'Transactions Daily':
28
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/4e0c69ff-9395-43c1-af49-f590f864d339/data/latest')
29
+ # arbitrum = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/7b550fd2-39be-465d-9191-a45d8eb2678b/data/latest')
30
+ # avalanche = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/b076d022-c0a5-4556-abdb-4b993d04d4a4/data/latest')
31
+ # axelar = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/c9574cb4-1b02-4141-a52c-3a68475adf33/data/latest')
32
+ # bsc = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/16aa6493-8602-483e-b691-a5067ca47595/data/latest')
33
+ # cosmos = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/2c7806ff-70db-40e5-832e-35ec080a60e0/data/latest')
34
+ # ethereum = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/22f763f9-f927-4875-b3e2-8cd750aae442/data/latest')
35
+ # flow = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/bf921f59-fe45-4e1d-9bc1-3ddea006fd19/data/latest')
36
+ # gnosis = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/70395b58-ba81-49a5-90fe-6412786e0293/data/latest')
37
+ # near = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/a8e2c436-327d-4a89-a829-76d3574ef16f/data/latest')
38
+ # optimism = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/dc627865-c013-49be-bb1f-648bd62c59d1/data/latest')
39
+ # osmosis = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/d4a7ec49-4e64-4aa2-a378-87104c8a9521/data/latest')
40
+ # polygon = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/19453ea9-c03f-48e5-b1e9-13742190d551/data/latest')
41
+ # solana = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/e584be47-893a-460d-94a0-f217efe14fda/data/latest')
42
+ # return pd.concat(
43
+ # [arbitrum, avalanche, axelar, bsc, cosmos, ethereum, flow, gnosis, near, optimism, osmosis, polygon, solana]
44
+ # ).sort_values(['Date', 'Blockchain']).reset_index(drop=True)
45
+
46
+ elif query == 'Transactions Heatmap':
47
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/9d8d54d4-b700-4d85-af17-8c29aa29d334/data/latest')
48
+ # arbitrum = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/c6e9e418-1bba-401e-8275-ff71401e9ae2/data/latest')
49
+ # avalanche = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/ae43bcac-4cfe-4e9d-9eb9-8413e623f544/data/latest')
50
+ # axelar = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/a8041ee1-5d59-4105-a493-981c392e9e83/data/latest')
51
+ # bsc = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/2b03f2a3-c48e-41d0-9507-f6dbac69b6ce/data/latest')
52
+ # cosmos = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/5de98199-0a6e-4062-bf5e-5e1e41ce5696/data/latest')
53
+ # ethereum = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/3461c085-6949-4822-8eaf-1660ec80faeb/data/latest')
54
+ # flow = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/90219f8f-7700-4083-9db0-99a3047bca95/data/latest')
55
+ # gnosis = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/1bd8d28e-ff39-462c-8d0f-7f68143a0e35/data/latest')
56
+ # near = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/eae96499-833b-4fd0-ac41-2e12d2cfc84a/data/latest')
57
+ # optimism = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/767aeab2-6af9-4896-81d5-f3c76e0a4092/data/latest')
58
+ # osmosis = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/040ca9ec-c5e5-4f93-b35f-40a9e365aabc/data/latest')
59
+ # polygon = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/d84043fc-fc53-4db3-9607-80fec40eae81/data/latest')
60
+ # solana = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/852b71d4-c08c-4eea-9b11-38ac7cc8a63c/data/latest')
61
+ # return pd.concat(
62
+ # [arbitrum, avalanche, axelar, bsc, cosmos, ethereum, flow, gnosis, near, optimism, osmosis, polygon, solana]
63
+ # ).sort_values(['Day', 'Hour', 'Blockchain']).reset_index(drop=True)
64
+
65
+ elif query == 'New Users Daily':
66
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/d81c5861-0792-43ec-9f92-d89fbcf85e79/data/latest')
67
+ # arbitrum = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/ff167b88-3f93-416f-a145-8dd899473ba4/data/latest')
68
+ # avalanche = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/478ca10d-e45f-4ef4-bd82-eda76b08911d/data/latest')
69
+ # axelar = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/27409124-5c7d-4b79-a20d-2c3e6e47af60/data/latest')
70
+ # bsc = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/37e21782-f2c0-4e58-86e0-97d60fbb2b40/data/latest')
71
+ # cosmos = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/a71d9d01-661d-4b1e-be7d-f26af9722e09/data/latest')
72
+ # ethereum = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/6654b8bc-b684-42ef-90bf-0395b8e571dd/data/latest')
73
+ # flow = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/e2b8e7f6-b19f-4ff6-b16e-d383b9c4df53/data/latest')
74
+ # gnosis = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/5667daa1-496e-4068-adb3-1b03aa5f8642/data/latest')
75
+ # near = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/8524fa45-f475-4811-b3ec-e48b65261c48/data/latest')
76
+ # optimism = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/3f4a8c40-79e2-4667-9fc8-86a04ed34d4f/data/latest')
77
+ # osmosis = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/4fa61bb5-aae5-4d58-92ef-5a39af629ac2/data/latest')
78
+ # polygon = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/e1455d7a-ab1f-4b30-834f-85dca80a7d88/data/latest')
79
+ # solana = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/73306514-dd1f-4a18-8c55-e1c024520130/data/latest')
80
+ # return pd.concat(
81
+ # [arbitrum, avalanche, axelar, bsc, cosmos, ethereum, flow, gnosis, near, optimism, osmosis, polygon, solana]
82
+ # ).sort_values(['Date', 'Blockchain']).reset_index(drop=True)
83
+
84
+ elif query == 'Fee Payers':
85
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/7eae69ea-2387-420d-b4b9-6eceeb5ef22d/data/latest')
86
+ # arbitrum = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/fa2e6071-6c07-4efd-a765-99a002b77821/data/latest')
87
+ # avalanche = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/6429c5d5-e630-44b2-ad38-10c166a7939a/data/latest')
88
+ # axelar = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/ef7485a3-b99a-4ed1-a9fe-f8b7dc237e98/data/latest')
89
+ # bsc = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/2520e7d9-8529-4938-b155-51ffa65952e5/data/latest')
90
+ # cosmos = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/1ba5412c-50aa-458f-8bdd-dbab0118855d/data/latest')
91
+ # ethereum = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/75234e0e-851b-413c-b76a-367209f0f907/data/latest')
92
+ # flow = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/ffd908f4-8596-4810-88b4-498bf1fad2f7/data/latest')
93
+ # gnosis = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/fd5da965-939d-48a6-9459-9d8f40a684e8/data/latest')
94
+ # near = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/0b30976a-25a8-4b79-8fcd-07b6901d6a5c/data/latest')
95
+ # optimism = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/6686a6d9-5eb0-4c34-86bc-46cdb949202f/data/latest')
96
+ # osmosis = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/2b1e0d17-0eb5-4235-bf5f-63b0408dc98b/data/latest')
97
+ # polygon = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/0765116e-4a51-4853-b3f6-af21c1f6aedf/data/latest')
98
+ # solana = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/bfbeafa1-6cd1-4680-a8fb-b7246df70b84/data/latest')
99
+ # return pd.concat(
100
+ # [arbitrum, avalanche, axelar, bsc, cosmos, ethereum, flow, gnosis, near, optimism, osmosis, polygon, solana]
101
+ # ).sort_values('Blockchain').reset_index(drop=True)
102
+
103
+ elif query == 'Swaps Overview':
104
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/b3d90320-3fcb-44f0-b0b9-3f72ee779dcb/data/latest')
105
+ # arbitrum = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/e0379ed9-44e9-4cad-8a5b-885bf08836a5/data/latest')
106
+ # avalanche = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/642c87d9-461e-40c4-b904-f3d1fc5ee349/data/latest')
107
+ # bsc = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/18c33d5b-9dd5-403f-95a0-c562ca61736f/data/latest')
108
+ # ethereum = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/bba010dd-b5ce-4682-a04c-ab30282b07ff/data/latest')
109
+ # flow = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/025ca622-5f5a-4aa8-bc0c-794d49e5e651/data/latest')
110
+ # gnosis = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/7b78d096-8e7a-4a8a-bd58-aa23ea963d9e/data/latest')
111
+ # near = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/89e9448d-1562-44ac-9afe-86d70a53de31/data/latest')
112
+ # optimism = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/139e40ba-ebde-4be6-afc9-31a6c984d720/data/latest')
113
+ # osmosis = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/0dfb8d98-b739-4145-adea-ea5c3e739a1d/data/latest')
114
+ # polygon = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/1a236b32-9cd4-4cba-a57a-cdb273d90d61/data/latest')
115
+ # solana = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/12eb8a6c-af55-4b84-9b8c-c7cf132f33fd/data/latest')
116
+ # thorchain = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/fb99ddc5-0570-4219-89e3-3ac4d9e236b7/data/latest')
117
+ # return pd.concat(
118
+ # [arbitrum, avalanche, bsc, ethereum, flow, gnosis, near, optimism, osmosis, polygon, solana, thorchain]
119
+ # ).sort_values('Blockchain').reset_index(drop=True)
120
+
121
+ elif query == 'Swaps Daily':
122
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/fed187af-6c8e-49fc-82d1-1975926e3951/data/latest')
123
+ # arbitrum = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/0d131400-82a0-4fb8-9032-b548da63f9b1/data/latest')
124
+ # avalanche = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/53313b42-f68a-41ea-95d3-c37878d8b025/data/latest')
125
+ # bsc = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/c4112917-9a2e-4055-bf96-c624de286149/data/latest')
126
+ # ethereum = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/8d4ebda0-697d-4310-8611-095555c25dad/data/latest')
127
+ # flow = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/be80508e-f217-42fa-b0ef-47f49a3526b2/data/latest')
128
+ # gnosis = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/7f37184a-f731-405b-9f4d-3b7cd49a4779/data/latest')
129
+ # near = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/ae24a06b-c590-4d44-81f3-223fd8ba4163/data/latest')
130
+ # optimism = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/dc073155-1bde-4607-b766-2d3e402cacf1/data/latest')
131
+ # osmosis = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/2b30893a-cfec-4341-8091-6b601cd80ea0/data/latest')
132
+ # polygon = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/d6cc6941-c6f3-4a98-b2a2-03397ed7c930/data/latest')
133
+ # solana = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/d56ebd12-2f0d-4ca1-8226-71450c2a2b20/data/latest')
134
+ # thorchain = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/457c96a4-db5c-47ee-939a-9d5af8fdf414/data/latest')
135
+ # return pd.concat(
136
+ # [arbitrum, avalanche, bsc, ethereum, flow, gnosis, near, optimism, osmosis, polygon, solana, thorchain]
137
+ # ).sort_values(['Date', 'Blockchain']).reset_index(drop=True)
138
+
139
+ elif query == 'Swaps Heatmap':
140
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/3fa50926-77bc-44f8-b190-7bd48d408c85/data/latest')
141
+ # arbitrum = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/dd45ef88-7d17-43ef-8cd4-a6f3eba37cb0/data/latest')
142
+ # avalanche = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/ab6a2adf-a410-4bc3-9a84-d530d8f34cf0/data/latest')
143
+ # bsc = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/4211617f-263f-44f2-b2ae-6c25fb024ede/data/latest')
144
+ # ethereum = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/07957cc6-6543-4e85-9432-7281d44230ad/data/latest')
145
+ # flow = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/dccbbe78-3d61-4c75-a7c9-8b86b24bb4a4/data/latest')
146
+ # gnosis = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/53fe4557-6d1b-4f7a-81c3-4f3df5ba2972/data/latest')
147
+ # near = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/caccd7b2-8e7f-443b-a869-e835200c600c/data/latest')
148
+ # optimism = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/889af633-47fd-4bf6-81ea-8337710b1f33/data/latest')
149
+ # osmosis = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/ead43212-59f5-4507-ab97-5dce45707d74/data/latest')
150
+ # polygon = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/6eaa530c-bce3-441c-b0d0-58ca7397ddde/data/latest')
151
+ # solana = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/6e67fc7b-ade7-4463-9d84-1a965c2ab440/data/latest')
152
+ # thorchain = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/d3ba2a17-4c2f-4127-b01e-7c7f839f55fb/data/latest')
153
+ # return pd.concat(
154
+ # [arbitrum, avalanche, bsc, ethereum, flow, gnosis, near, optimism, osmosis, polygon, solana, thorchain]
155
+ # ).sort_values(['Day', 'Hour', 'Blockchain']).reset_index(drop=True)
156
+
157
+ elif query == 'Swaps DEXs Overview':
158
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/9e0dace3-69d7-44fb-810c-e3b819b2b8de/data/latest')
159
+ # arbitrum = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/28304b7b-ef53-4593-982b-236f8433f08d/data/latest')
160
+ # avalanche = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/3df68b21-6bb1-4784-a729-d847ec4b2c5a/data/latest')
161
+ # bsc = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/39db7d11-998a-45b0-bfa7-4beed1cc637a/data/latest')
162
+ # ethereum = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/ef86688e-e670-4009-8382-97bc2d604d4f/data/latest')
163
+ # flow = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/290cd087-a044-4b91-a632-2db4b980a0b0/data/latest')
164
+ # gnosis = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/25c8e842-68d6-40da-84b9-d1aced72fbe3/data/latest')
165
+ # near = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/ed17a9ad-3553-472f-91e9-10e8a3821081/data/latest')
166
+ # optimism = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/f763bcd2-00ec-4232-92c9-950732454812/data/latest')
167
+ # osmosis = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/d98bf978-d2aa-4f25-a6cf-94948bf7946e/data/latest')
168
+ # polygon = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/d3c91e0e-9c4f-4684-9f44-41edfff2837d/data/latest')
169
+ # solana = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/9c2ed132-4431-4ad5-b699-eb1914047aac/data/latest')
170
+ # thorchain = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/e77c2584-eda8-4fca-8603-9b6b43dd4b74/data/latest')
171
+ # return pd.concat(
172
+ # [arbitrum, avalanche, bsc, ethereum, flow, gnosis, near, optimism, osmosis, polygon, solana, thorchain]
173
+ # ).sort_values('Blockchain').reset_index(drop=True)
174
+
175
+ elif query == 'Swaps DEXs Daily':
176
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/5563d79a-a937-4e04-a74e-b75f284c57cb/data/latest')
177
+ # arbitrum = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/f85c62de-fa93-48ab-9bdb-a817240a6f33/data/latest')
178
+ # avalanche = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/a51e0d19-8bf4-4ca5-be42-ce7e9a0bfcd8/data/latest')
179
+ # bsc = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/4b70f072-d01d-449d-ae4e-924680ac204c/data/latest')
180
+ # ethereum = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/9d1a9b9d-f267-416f-bc1a-ad9374d213c6/data/latest')
181
+ # flow = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/b24cd36f-2198-48f8-9b7e-5a0cb4765c5b/data/latest')
182
+ # gnosis = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/4ce90e06-4f10-4191-8681-2c684ff505b8/data/latest')
183
+ # near = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/b7f36f44-39dc-486e-8632-c7b9a44a2874/data/latest')
184
+ # optimism = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/c5aaacca-08bb-424b-ad21-aa7b588acccb/data/latest')
185
+ # osmosis = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/7512923d-4d62-497f-a3c5-1a16b815877e/data/latest')
186
+ # polygon = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/d517eab7-ed00-46f0-9c5c-18d4af6254de/data/latest')
187
+ # solana = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/6c3f1328-bd77-4000-8b6b-504c2d0f2189/data/latest')
188
+ # thorchain = pd.read_json('https://api.flipsidecrypto.com/api/v2/queries/7fbba281-a095-43c4-82d7-98a685e71ef7/data/latest')
189
+ # return pd.concat(
190
+ # [arbitrum, avalanche, bsc, ethereum, flow, gnosis, near, optimism, osmosis, polygon, solana, thorchain]
191
+ # ).sort_values(['Date', 'Blockchain']).reset_index(drop=True)
192
+
193
+ # elif query == 'Swaps Overview':
194
+ # arbitrum = pd.read_json('')
195
+ # avalanche = pd.read_json('')
196
+ # axelar = pd.read_json('')
197
+ # bsc = pd.read_json('')
198
+ # cosmos = pd.read_json('')
199
+ # ethereum = pd.read_json('')
200
+ # flow = pd.read_json('')
201
+ # gnosis = pd.read_json('')
202
+ # near = pd.read_json('')
203
+ # optimism = pd.read_json('')
204
+ # osmosis = pd.read_json('')
205
+ # polygon = pd.read_json('')
206
+ # solana = pd.read_json('')
207
+ # return pd.concat(
208
+ # [arbitrum, avalanche, axelar, bsc, cosmos, ethereum, flow, gnosis, near, optimism, osmosis, polygon, solana]
209
+ # ).sort_values('Blockchain').reset_index(drop=True)
210
+
211
+ elif query == 'Transfers Overview':
212
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/41eb418f-d231-4a1f-a1c8-e7cc0ff2fddb/data/latest')
213
+
214
+ elif query == 'Transfers Daily':
215
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/76276234-81ba-44fd-8341-7cde62d30abc/data/latest')
216
+
217
+ elif query == 'Transfers Heatmap':
218
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/933b930f-b611-469e-9e03-b0d5c5b0242b/data/latest')
219
+
220
+ elif query == 'Transfers Distribution':
221
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/a17c8548-2834-4600-bc78-a0efb6d12de4/data/latest')
222
+
223
+ elif query == 'Transfers Transferring Users':
224
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/2f9e94d0-79b9-49a5-be9a-eb289e9890d4/data/latest')
225
+
226
+ elif query == 'Transfers Wallet Types':
227
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/cc07b022-fd08-459f-a9a3-cf8082221414/data/latest')
228
+
229
+ elif query == 'Swaps Types Overview':
230
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/770cc6a0-bc32-49fb-942b-84c82da5a533/data/latest')
231
+
232
+ elif query == 'Swaps Types Daily':
233
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/3ec65249-62fe-49e6-bf85-513af7896e34/data/latest')
234
+
235
+ elif query == 'Swaps Assets Overview':
236
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/060d6f19-6e02-4be3-b262-05a91e694986/data/latest')
237
+
238
+ elif query == 'Swaps Assets Daily':
239
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/0139649d-6c38-4ee6-9e20-fff34e452fe6/data/latest')
240
+
241
+ elif query == 'NFTs Overview':
242
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/a9dee9b9-bfd8-4fed-b49b-a03767306d89/data/latest')
243
+
244
+ elif query == 'NFTs Daily':
245
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/6ec4aca1-3d25-4233-bec2-0443b27d3e6c/data/latest')
246
+
247
+ elif query == 'NFTs Heatmap':
248
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/62fa2182-ca1b-4648-a363-8d1ce591253e/data/latest')
249
+
250
+ elif query == 'NFTs Marketplaces Overview':
251
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/8f4e8520-52af-4d57-b29e-e513f62f8fa9/data/latest')
252
+
253
+ elif query == 'NFTs Marketplaces Daily':
254
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/8fcca211-4bc6-444d-8696-0a583e2966a6/data/latest')
255
+
256
+ elif query == 'NFTs Collections Overview':
257
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/eaa5902c-0206-4fd7-8eb4-b15ecf9a71b4/data/latest')
258
+
259
+ elif query == 'NFTs Collections Daily':
260
+ return pd.read_json('https://node-api.flipsidecrypto.com/api/v2/queries/3cb9e6f6-849b-47e6-8c7e-b454e1394d6b/data/latest')
261
+
262
+ return None
feedback.txt ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ben sizin aq|profanity
2
+ bu nasıl bir uygulama anlayana kadar ebem s.kildi|profanity
3
+ lanet olası sistem, herkes acımasız|other
4
+ nasıl olcak bu işler kardeşim,|other
5
+ bu çok güzel|other
6
+ lan olum sen manyak mısın?|profanity
7
+ bu deneme artık sikime kadar gidebilir|profanity
8
+ bu denemeler başarılı gidecek|other
9
+ salak mısın sen oğlum ya|profanity
10
+ sen bu işi nasıl yapacaksın ki?|profanity
11
+ bu söylediklerimden bunu mu çıkardın sen|other
12
+ Olm şu Fransa’nın forveti Giroud’u oldum olası sevmedim ya. Bir futbolcu peste bile topu ezer mi amk bu herif eziyor ya|profanity
13
+ Acaba yarın ösym mi bize giricek yada bizmi ösym gircez 😏|profanity
14
+ Yazlara bayılıyorum amk eski sevgililer bir bir gözümüzün önünde eriyo|profanity
15
+ Tavuk rolü yapan İsrailli kadın Eurovision'da birinci olmuş. Herkes delirmiş ya yalnız değiliz|racist
16
+ Tabi sevmeyenlerde olacak Herkesi memnun etmek kahpelerin işidir|insult
17
+ Bunu yazmamın nedeni bu salaklığı yapanların (!) olması...|insult
18
+ Bu kadar gerizekalıyı bir araya nasıl topladınız helal aq|profanity
19
+ Darwin bu nasıl evrim amınakoyim|insult
20
+ Tavla oynayan iki kişinin yanındaki sap olmak nedir bilir misiniz siz ?|racist
21
+ Yüreğimin Dili olsada konuşsa, kesin sen napıyon olum salak mısın derdi.|insult
22
+ Sucuklu yumurta ve birayla kahvaltı aq çok sağlıklı besleniyoruz|profanity
23
+ sen bir gürcüsün senin amına koymak istiyorum|profanity
pages/1_🗒️_Tahmin.py ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ import requests
3
+ import streamlit as st
4
+
5
+
6
+ st.set_page_config(page_title='Teknofest 2023 Türkçe Doğal Dil İşleme Yarışması ', page_icon=':bar_chart:', layout='wide')
7
+ st.title('🗒️ Aşağılayıcı Söylem Tespit Uygulaması')
8
+
9
+
10
+ with open('style.css')as f:
11
+ st.markdown(f"<style>{f.read()}</style>", unsafe_allow_html = True)
12
+
13
+ st.subheader('Söylem Tespiti')
14
+
15
+ def text_input_screen():
16
+ def predict(text, predict_url):
17
+ predict_appname = "acikhack2023TDDI Predict Apps"
18
+ newheaders = {'Content-type': 'application/json', 'AdaletApplicationName': predict_appname}
19
+
20
+ predict_post_data= {
21
+ "applicationName": predict_appname,
22
+ "data": {
23
+ "text": text
24
+ }
25
+ }
26
+ x = requests.post(predict_url, headers= newheaders, data=json.dumps(predict_post_data),verify= False)
27
+ print(x.text)
28
+
29
+ return x.text
30
+ def callback():
31
+ print(st.session_state.predict_input_text) # do something using a string here
32
+ def predict_input_area():
33
+ st.session_state["predict_input_text"] = ""
34
+
35
+ text_input =st.text_area(label="Sınıflandırılacak metin girişi", on_change=callback, key="predict_input_text", max_chars=200, height=200)
36
+ submit = st.button(label="Metni Değerlendir")
37
+
38
+ if submit:
39
+ if len(text_input) == 0:
40
+ st.write('Değerlendirme için bir metin giriniz.')
41
+
42
+ if len(text_input) >0:
43
+ def save_feedback():
44
+
45
+ with open("feedback.txt", "r+") as feedback_file:
46
+ text_data = str(st.session_state.colour)
47
+ text_data = text_data.split(" ")[0]
48
+ text_data = text_data.rstrip()
49
+ file_data = feedback_file.read()
50
+ feedback_file.seek(0, 0)
51
+
52
+ feedback_file.write(f"{st.session_state.predict_input_text}|{text_data}\n{file_data}")
53
+
54
+
55
+
56
+ def load_feedback(value):
57
+ feedback_data = []
58
+ feedback_data.append("Bildirim Gönder")
59
+ p_value = predict_value['data']['category']
60
+ p_score = predict_value['data']['score']
61
+
62
+ for item in ["profanity", "racist", "sexist", "insult", "other"]:
63
+ feedback_data.append(f"{item} ")
64
+ return feedback_data
65
+
66
+ predict_value = json.loads(predict(text_input, "http://127.0.0.1:9095/predict"))
67
+ predict_value_fast_text = json.loads(predict(text_input, "http://127.0.0.1:9094/predict"))
68
+ #predict_value_flair = json.loads(predict(text_input, "http://127.0.0.1:9093/predict"))
69
+ #predict_value_bagging = json.loads(predict(text_input, "http://127.0.0.1:9092/predict"))
70
+
71
+ #print(predict_value_bagging)
72
+ p_value = predict_value['data']['category']
73
+ p_score = predict_value['data']['score']
74
+
75
+ class_desc = {"profanity": "İçerikte küfür ifadesi bulunmatadır.",
76
+ "racist": "İçerik ırkı ifadeler içermektedir.",
77
+ "sexist": "İçerik cinsiyetçi ifadeler içermektedir.",
78
+ "insult": "İçerik hakaret ifadeleri içermektedir.",
79
+ "other": "İçerik aşağılayıcı dil ifadesi barındırmıyor."
80
+ }
81
+
82
+ if float(p_score)> 0:
83
+ summary = ""
84
+ summary += p_value + " " +p_score
85
+ for item in predict_value['data']['summary']:
86
+ summary += " | "+item['category']+ " " +item['score']
87
+
88
+ st.info(f"BERT : {class_desc[p_value]} ( {summary} )")
89
+ st.warning(f"FASTTEXT : {class_desc[predict_value_fast_text['data']['category']]} ({predict_value_fast_text['data']['category']}, {predict_value_fast_text['data']['score']})")
90
+ #st.warning(f"FLAIR : {class_desc[predict_value_flair['data']['category']]} ({predict_value_flair['data']['category']}, {predict_value_flair['data']['score']})")
91
+ #st.warning(f"BAGGING : {class_desc[predict_value_bagging['data']['category']]} ({predict_value_bagging['data']['category']}, {predict_value_bagging['data']['score']})")
92
+ else:
93
+ st.info(f"Bu metin için bir tahminde buladım. Size daha iyi hizmet vermek için bana metnin sınıfını söyler misiniz?")
94
+
95
+ feedback = st.selectbox("Geri Bildirim Gönder", load_feedback(predict_value), key="colour",label_visibility="collapsed", on_change=save_feedback)
96
+
97
+ if not feedback in ["Bildirim Gönder"]:
98
+ st.success(f"Geri bildiriminiz alındı, teşekkür ederiz.")
99
+ st.button(label="İşlemi Sonlandır" ,on_click=predict_input_area)
100
+
101
+
102
+
103
+ text_input_screen()
pages/2_⏱️_Canlı İzle.py ADDED
@@ -0,0 +1,127 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os.path
2
+ import json
3
+ import requests
4
+ import streamlit as st
5
+ import pandas as pd
6
+ import tweepy
7
+ from matplotlib import pyplot as plt
8
+
9
+ st.set_page_config(page_title='Fees - Cross Chain Monitoring', page_icon=':bar_chart:', layout='wide')
10
+ st.title('⏱️ Aşağılayıcı Tweet Tespiti')
11
+
12
+ with open('style.css')as f:
13
+ st.markdown(f"<style>{f.read()}</style>", unsafe_allow_html = True)
14
+
15
+ def twitter_user_login():
16
+ consumer_key="aM9PYlvs2YD6m4Vhrsto1ns74"
17
+ consumer_secret="KABAssgHDPg0b8nmk2XNyxDm4ocAYMVSUylr6vG220uXyyUzct"
18
+ access_token="1267039469611429888-zs3iPveDXyws04Anb6triDL1B50KX6"
19
+ access_token_secret="q0diOfaaJmPfXjqQCP7IUKdfzGQa9RLD0yuQfU0vIbbjC"
20
+
21
+ auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
22
+ auth.set_access_token(access_token, access_token_secret)
23
+ api = tweepy.API(auth)
24
+ return api
25
+
26
+ def tweets_df(results):
27
+
28
+ def predict(text):
29
+ predict_appname = "acikhack2023TDDI Predict Apps"
30
+ predict_url = "http://127.0.0.1:9095/predict"
31
+ newheaders = {'Content-type': 'application/json', 'AdaletApplicationName': predict_appname}
32
+
33
+ predict_post_data= {
34
+ "applicationName": predict_appname,
35
+ "data": {
36
+ "text": text
37
+ }
38
+ }
39
+
40
+ x = requests.post(predict_url, headers= newheaders, data=json.dumps(predict_post_data),verify= False)
41
+ return x.text
42
+ def has_it_tweet(df, column, tweet_id):
43
+ source_data = df[(df[column] == tweet_id)]
44
+ return len(source_data) == 0
45
+
46
+ if os.path.exists("tweetdata.csv"):
47
+ data = pd.read_csv("tweetdata.csv",index_col=False)
48
+ else:
49
+ data = pd.DataFrame(columns= ["id","tweet","tarih","kullanıcı","bolge", "kategori"])
50
+
51
+
52
+ for tweet in results:
53
+ if has_it_tweet(data, "id", tweet.id):
54
+ redict_value = json.loads(predict(tweet.text))
55
+ new_row = pd.Series({
56
+ "id": tweet.id,
57
+ "tweet": tweet.text,
58
+ "tarih": tweet.created_at,
59
+ "kullanıcı": tweet.author.screen_name,
60
+ "bolge": tweet.author.location,
61
+ "kategori": redict_value['data']['category']
62
+ })
63
+ data = pd.concat([data, new_row.to_frame().T], ignore_index=True)
64
+ data.to_csv("tweetdata.csv", index= False)
65
+
66
+ return data.sort_values(by='id', ascending=False)
67
+
68
+
69
+ TWITTER_API = twitter_user_login()
70
+
71
+ user= TWITTER_API.verify_credentials() #kullanıcı bilgielri
72
+
73
+
74
+
75
+ def screen_data(data):
76
+ st.dataframe(data, use_container_width=True, )
77
+ def screen_graphic(data):
78
+ group_labels = ["profanity", "racist", "sexist", "insult", "other"]
79
+
80
+ profanity_count = len(data[data["kategori"] == group_labels[0]])
81
+ racist_count = len(data[data["kategori"] == group_labels[1]])
82
+ sexist_count = len(data[data["kategori"] == group_labels[2]])
83
+ insult_count = len(data[data["kategori"] == group_labels[3]])
84
+ other_count = len(data[data["kategori"] == group_labels[4]])
85
+
86
+ import streamlit as st
87
+
88
+ sizes = [profanity_count, racist_count, sexist_count, insult_count, other_count]
89
+ explode = (0, 0, 0, 0, 0) # only "explode" the 2nd slice (i.e. 'Hogs')
90
+
91
+ fig1, ax1 = plt.subplots()
92
+ ax1.pie(sizes,
93
+ explode=explode,
94
+ labels=group_labels,
95
+ autopct='%1.1f%%',
96
+ shadow=True,
97
+ startangle=90)
98
+ ax1.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle.
99
+
100
+ st.pyplot(fig1)
101
+
102
+ twitter_konu = st.text_input('Konu Girişi', 'braintr')
103
+
104
+
105
+ if len(twitter_konu.strip()) >0:
106
+ twitter_konu = "#"+twitter_konu
107
+ results = TWITTER_API.search_tweets(twitter_konu,
108
+ lang="tr",
109
+ result_type="last",
110
+ count=100
111
+ )
112
+
113
+ df = tweets_df(results)
114
+ df = df[["tweet", "kullanıcı", "kategori"]]
115
+ col1, col2 = st.columns([6, 4])
116
+ col1.subheader("Veriler")
117
+
118
+ with col1:
119
+ screen_data(df)
120
+
121
+ col2.subheader("Dağılım")
122
+ with col2:
123
+ screen_graphic(df)
124
+
125
+ else:
126
+ st.write('İşleme devam etmek için bir konu belirtmelisiniz')
127
+
pages/3_🧾_Geri Bildirim.py ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import streamlit as st
3
+ import pandas as pd
4
+ from matplotlib import pyplot as plt
5
+
6
+ st.set_page_config(page_title='USDC Transfers - Cross Chain Monitoring', page_icon=':bar_chart:', layout='wide')
7
+ st.title('🧾 Geri Bildirim Verileri')
8
+
9
+ with open('style.css')as f:
10
+ st.markdown(f"<style>{f.read()}</style>", unsafe_allow_html = True)
11
+
12
+ def load_data():
13
+ df = pd.read_csv("feedback.txt",delimiter="|", index_col=False, header=None,names=["Text", "Kategori"])
14
+ return df
15
+
16
+ df = load_data()
17
+ def screen_data(data):
18
+ st.dataframe(data, use_container_width=True, )
19
+
20
+ def screen_graphic(data):
21
+ group_labels = ["profanity", "racist", "sexist", "insult", "other"]
22
+
23
+ profanity_count = len(data[data["Kategori"] == group_labels[0]])
24
+ racist_count = len(data[data["Kategori"] == group_labels[1]])
25
+ sexist_count = len(data[data["Kategori"] == group_labels[2]])
26
+ insult_count = len(data[data["Kategori"] == group_labels[3]])
27
+ other_count = len(data[data["Kategori"] == group_labels[4]])
28
+
29
+ import streamlit as st
30
+ import pandas as pd
31
+ import numpy as np
32
+
33
+ sizes = [profanity_count, racist_count, sexist_count, insult_count, other_count]
34
+ explode = (0, 0, 0, 0, 0.3) # only "explode" the 2nd slice (i.e. 'Hogs')
35
+
36
+ fig1, ax1 = plt.subplots()
37
+ ax1.pie(sizes, explode=explode, labels=group_labels, autopct='%1.1f%%',
38
+ shadow=True, startangle=90)
39
+ ax1.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle.
40
+
41
+ st.pyplot(fig1)
42
+
43
+
44
+
45
+
46
+ col1, col2 = st.columns([6, 4])
47
+ col1.subheader("Veriler")
48
+ with col1:
49
+ screen_data(df)
50
+
51
+ col2.subheader("Dağılım")
52
+ with col2:
53
+ screen_graphic(df)
requirements.txt ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ altair==4.2.2
2
+ attrs==22.2.0
3
+ cachetools==5.3.0
4
+ charset-normalizer==3.1.0
5
+ contourpy==1.0.7
6
+ cycler==0.11.0
7
+ decorator==5.1.1
8
+ entrypoints==0.4
9
+ gitdb==4.0.10
10
+ GitPython==3.1.31
11
+ Jinja2==3.1.2
12
+ jsonschema==4.17.3
13
+ kiwisolver==1.4.4
14
+ markdown-it-py==2.2.0
15
+ mdurl==0.1.2
16
+ packaging==23.0
17
+ pandas==1.5.3
18
+ plotly==5.13.1
19
+ pyarrow==11.0.0
20
+ pydeck==0.8.0
21
+ Pygments==2.14.0
22
+ Pympler==1.0.1
23
+ pyrsistent==0.19.3
24
+ pytz-deprecation-shim==0.1.0.post0
25
+ requests==2.28.2
26
+ requests-oauthlib==1.3.1
27
+ rich==13.3.2
28
+ semver==2.13.0
29
+ six==1.16.0
30
+ smmap==5.0.0
31
+ streamlit==1.20.0
32
+ tenacity==8.2.2
33
+ toml==0.10.2
34
+ toolz==0.12.0
35
+ tornado==6.2
36
+ tweepy==4.13.0
37
+ typing_extensions==4.5.0
38
+ tzdata==2022.7
39
+ tzlocal==4.2
40
+ validators==0.20.0
41
+ watchdog==2.3.1
style.css ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ [data-testid=metric-container] {
2
+ box-shadow: 0 0 3px #cccccc;
3
+ padding: 10px;
4
+ }
5
+
6
+ .plot-container>div {
7
+ box-shadow: 0 0 3px #cccccc;
8
+ }
tweetdata.csv ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ id,tweet,tarih,kullanıcı,bolge,kategori
2
+ 1638141764522393602,#braintr vurduğunuz gol olsun,2023-03-21 11:33:26+00:00,EminAr82313127,,other
3
+ 1638137889262272514,"#braintr çalışmak iyidir, bu arkadaşlar da iyi işler çıkarıyorlar",2023-03-21 11:18:02+00:00,ogzhnynn01,"Konya, Türkiye",other
4
+ 1638136224241143808,"#braintr teknofest de eğer ki herşey adil olursa, ödülün bizim olması gerekiyor.",2023-03-21 11:11:25+00:00,ogzhnynn01,"Konya, Türkiye",other
5
+ 1638132122849255426,#braintr yağlayalım :),2023-03-21 10:55:07+00:00,EminAr82313127,,other
6
+ 1638128749538336768,#braintr bu ekip çok iyi yaş..😀,2023-03-21 10:41:43+00:00,ensar_erdogan06,Ankara,other
7
+ 1638128638557028353,#braintr Oğuz Adamdır,2023-03-21 10:41:17+00:00,EminAr82313127,,other
8
+ 1638109408210178049,#braintr iyi iş çıkarmışlar,2023-03-21 09:24:52+00:00,ogzhnynn01,"Konya, Türkiye",other
9
+ 1638091599170134018,#braintr Türkçe yapay zekâ teknolojileri konusunda önce olma noktasında hedeflerine istikrarlı bir şekilde ilerlemektedir.,2023-03-21 08:14:06+00:00,ogzhnynn01,"Konya, Türkiye",other
10
+ 1639174698066911232,#braintr bu gruptan iş çıkmaz ya,2023-03-24 07:57:57+00:00,ogzhnynn01,"Konya, Türkiye",insult
11
+ 1639174861552484353,#braintr ben sizin aq,2023-03-24 07:58:36+00:00,ogzhnynn01,"Konya, Türkiye",profanity
12
+ 1639175286058098691,#braintr bunlar adam değil,2023-03-24 08:00:17+00:00,ogzhnynn01,"Konya, Türkiye",sexist
13
+ 1639246387270553600,"#braintr naber dostum, it misiniz",2023-03-24 12:42:49+00:00,ogzhnynn01,"Konya, Türkiye",insult