-
Notifications
You must be signed in to change notification settings - Fork 6
/
classifier-4.html
125 lines (104 loc) · 4.6 KB
/
classifier-4.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Классификация сообщений Telegram чата</title>
<link rel="stylesheet" href="css/reveal.css">
<link rel="stylesheet" href="css/theme/moon.css">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="lib/css/zenburn.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? 'css/print/pdf.css' : 'css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section>
<h3>Классификация сообщений Telegram чата<br> (домашнее задание)</h3>
<p><small>Страничка курса: <a href="https://maxcom.github.io/scala-course-2022/">https://maxcom.github.io/scala-course-2022/</small></a>
</section>
<section>
<ul>
<li>Создаем бот Telegram, добавляем его в группу
<li>Читаем все сообщения
<li>Если определили позитив/негатив - постим в группу сообщение с классом и разметкой слов
</ul>
</section>
<section>
<p>Регистрируем Telegram Bot
<ul>
<li>Находим BotFather
<li>/newbot для создания нового бота<br>
(по имени должно быть понятно чей это бот)
<li>Сохраните токен для API
<li>/setprivacy для отключения privacy mode
</ul>
</section>
<section>
<p>Читаем все сообщения
<p>Используем клиент Akka Http (Http().singleRequest)
<p><a href="https://doc.akka.io/docs/akka-http/current/client-side/index.html" target=_blank">https://doc.akka.io/docs/akka-http/current/client-side/index.html</a>
</section>
<section>
<a href="https://core.telegram.org/bots/api#getting-updates" target=_blank>https://core.telegram.org/bots/api#getting-updates</a>
</section>
<section>
<pre><code class="scala">
val uri = Uri(s"https://api.telegram.org/bot$token/getUpdates")
.withQuery(Uri.Query("timeout" -> "100"))
Http().singleRequest(HttpRequest(uri = uri)).map { response =>
???
}
</code></pre>
<p>Проверяем статус ответа, парсим результат<br> (только нужные поля)
</section>
<section>
<p>Создаем актор, получающий обновления.
<p>В каждом ответе есть "update_id". Нужно его увеличить на 1 и передать в offset. Старт с 0.
</section>
<section>
<p>Смотрим только текст, классифицируем.
</section>
<section>
<p>Постим в чат
<p><a href="https://core.telegram.org/bots/api#sendmessage" target=_blank">https://core.telegram.org/bots/api#sendmessage</a>
<p>chat_id берем в сообщении,<br> режим форматирования html
<p>нейтральные не постим, но логгируем
</section>
<section>
<p>Пришлите имя вашего бота в чат слушателей курса - добавим его в специальную тестовую группу.
</section>
<section>
<p>Срок сдачи - 18 мая.
</section>
</div>
</div>
<script src="lib/js/head.min.js"></script>
<script src="js/reveal.js"></script>
<script>
// More info about config & dependencies:
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: true,
transition: 'slide', // none/fade/slide/convex/concave/zoom
dependencies: [
{ src: 'plugin/markdown/marked.js' },
{ src: 'plugin/markdown/markdown.js' },
{ src: 'plugin/notes/notes.js', async: true },
{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
</body>
</html>