Forum » Programiranje » Slo-Tech orodje za štetje pogostosti uporabe besed
Slo-Tech orodje za štetje pogostosti uporabe besed
strawman ::
Iz dolgčasa ter iz želje po obnovitvi Python znanja, sem se včeraj lotil ustvariti orodje, ki za posameznega uporabnika na Slo-Tech poišče njegove poste, ter iz njih razbere najbolj pogosto uporabljane besede.
Orodje najdete na GitLabu tukaj.
Iz postov odstrani zadeve kot so citati, linki, in podobne zadeve.
Upošteva tudi minimalno dolžino besede, kjer se mi zdi da besede s 3 črkami in manj niso relevantne.
S pomočjo orodja WordCloud ustvari tudi grafiko najpogostejših besed.
Testirano na Linuxu, verjetno pa mora delovati tudi na Windowsih. Priložna navodila mislim da so dovolj jasna tudi za ne-IT ljudi.
Primer zame:
In še primer slike:
Izvedba je kakršna je, Python ni moj primarni jezik, tako da so vsaki komentarji, kritike in predlogi za izbolšavo dobrodošli.
@Admini - med pravili foruma nisem našel zapisov o prepovedi scrapinga postov, če pa to ni dovoljeno, pa temo brišite.
Orodje najdete na GitLabu tukaj.
Iz postov odstrani zadeve kot so citati, linki, in podobne zadeve.
Upošteva tudi minimalno dolžino besede, kjer se mi zdi da besede s 3 črkami in manj niso relevantne.
S pomočjo orodja WordCloud ustvari tudi grafiko najpogostejših besed.
Testirano na Linuxu, verjetno pa mora delovati tudi na Windowsih. Priložna navodila mislim da so dovolj jasna tudi za ne-IT ljudi.
Primer zame:
[LOG] Generating word counter for user c121979
[LOG] Most common words:
('tudi', 162)
('lahko', 119)
('bolj', 106)
('kjer', 80)
('samo', 71)
('tako', 71)
('precej', 68)
('kripto', 67)
('vedno', 67)
('ampak', 63)
('glede', 62)
('verjetno', 60)
('zaradi', 59)
('vendar', 57)
('tega', 54)
('seveda', 51)
('ljudi', 50)
('nekaj', 48)
('bodo', 48)
('sploh', 46)
...se nadaljuje...
In še primer slike:
Izvedba je kakršna je, Python ni moj primarni jezik, tako da so vsaki komentarji, kritike in predlogi za izbolšavo dobrodošli.
@Admini - med pravili foruma nisem našel zapisov o prepovedi scrapinga postov, če pa to ni dovoljeno, pa temo brišite.
Greg91 ::
Morda bi dobil bolj smiselne rezultate, če bi namesto odstranjevanja besed s tremi črkami ali manj, odstranil najpogostejše besede (ne nujno vse seveda).
V navodilih pri zahtevanih knjižnicah dodaj še requests. Morda bi bilo smiselno zahtevane knjižnice shraniti v requests.txt ali pyproject.toml.
V navodilih pri zahtevanih knjižnicah dodaj še requests. Morda bi bilo smiselno zahtevane knjižnice shraniti v requests.txt ali pyproject.toml.
kuall ::
jest sem nekaj podobnega naredil v parih urah par let nazaj s tem dodatkom, da pri vsaki besedi pokaže še vse besde, ki so podobne njej in vse stavke, kjer nastopa. za besedo miren mi najde npr te podobne besede (večinoma se gre za sklone):
1. mirno (22)
2. miren (7)
3. mirne (4)
4. mirna (3)
5. miran (1)
6. nemiren (1)
po moje bi bilo kaj takega (podobnost besed) dokaj uporabno za pesnike-glasbenike, ki rabijo rime in podobnosti v pesmih, ker so nam podobnosti generalno lepe.
za away to najde:
1. away (162)
2. always (17)
3. awkwardly (1)
in če bi v isti stavek vrgel te tri besede se mi zdi, da bi ratalo dokaj lepo, seveda pa imaš tu še problem kako tvorit stavek, ki je smiseln iz takih podobnih besed. za to bi pa tudi lahko spisal en ai programček (tvorjenje smiselnih stavkov).
1. mirno (22)
2. miren (7)
3. mirne (4)
4. mirna (3)
5. miran (1)
6. nemiren (1)
po moje bi bilo kaj takega (podobnost besed) dokaj uporabno za pesnike-glasbenike, ki rabijo rime in podobnosti v pesmih, ker so nam podobnosti generalno lepe.
za away to najde:
1. away (162)
2. always (17)
3. awkwardly (1)
in če bi v isti stavek vrgel te tri besede se mi zdi, da bi ratalo dokaj lepo, seveda pa imaš tu še problem kako tvorit stavek, ki je smiseln iz takih podobnih besed. za to bi pa tudi lahko spisal en ai programček (tvorjenje smiselnih stavkov).
kuall ::
Morda bi dobil bolj smiselne rezultate, če bi namesto odstranjevanja besed s tremi črkami ali manj, odstranil najpogostejše besede (ne nujno vse seveda).
bedast nasvet. vsaka beseda je pomembna, pogoste toliko bolj. če že kaj bi pri vsakem uporabniku lahko pokazal, katere so besede specifične zanj (ki jih uporablja bolj pogosto samo on, ne pa vsi).
melvins ::
a to delate za gugl analitiks ali pa kaksna privat firma, ali pa samo kar tako iz osebnega firbca?
melvins ::
Pismo, zdaj pa ste izdali skrivnost drugim, ki bi se radi skrivali na interneti. pa bodo ubodli programcek, tocno tale zgoraj in se sami kontrolirali, ce izstopajo iz povprecja z besedami. Damn!
kuall ::
jaz iz firbca oziroma zato, ker je zanimivo. odkrivaš nekaj novega, ne stalno eno in isto dolgočasje.
drug aspekt pa je tudi vlagajne v prihodnost, ker imam tako lastnost, da si rad prištimam stvari, ki bi znale bit v prihodnosti koristne. zelo fajn lastnost. podobno kot un, ki špara in vlaga v nekaj, kar mu bo nekoč nosilo denar. sicer je tole 100x bolj riskanten vložek kot šparanje ampak vseeno.
še ena ideja za ai program: pri forum uporabniku najdeš besede, ki so pogoste zanj. potem pa najdeš uporabnike, ki imajo za svoje pogoste besede take, ki so smiselno podobne prvemu uporabniku. na tak način bi našel uporabnike, ki razmišljajo podobno, imajo ista zanimanja, ali pa so enostavno iz istega konca slovenije ali so odraščali v podobnem okolju. koristno za kake zmenkarije npr.
drug aspekt pa je tudi vlagajne v prihodnost, ker imam tako lastnost, da si rad prištimam stvari, ki bi znale bit v prihodnosti koristne. zelo fajn lastnost. podobno kot un, ki špara in vlaga v nekaj, kar mu bo nekoč nosilo denar. sicer je tole 100x bolj riskanten vložek kot šparanje ampak vseeno.
še ena ideja za ai program: pri forum uporabniku najdeš besede, ki so pogoste zanj. potem pa najdeš uporabnike, ki imajo za svoje pogoste besede take, ki so smiselno podobne prvemu uporabniku. na tak način bi našel uporabnike, ki razmišljajo podobno, imajo ista zanimanja, ali pa so enostavno iz istega konca slovenije ali so odraščali v podobnem okolju. koristno za kake zmenkarije npr.
Zgodovina sprememb…
- spremenilo: kuall ()
Greg91 ::
Morda bi dobil bolj smiselne rezultate, če bi namesto odstranjevanja besed s tremi črkami ali manj, odstranil najpogostejše besede (ne nujno vse seveda).
bedast nasvet. vsaka beseda je pomembna, pogoste toliko bolj. če že kaj bi pri vsakem uporabniku lahko pokazal, katere so besede specifične zanj (ki jih uporablja bolj pogosto samo on, ne pa vsi).
Daj se ohladi malo. Če bi si vzel par minut in dejansko pognal skripto, bi ugotovil, da je za različne uporabnike word cloud precej podoben, ne boš verjel, iz razloga, ker ljudje uporabljamo veliko enakih besed. In če bi že rad ugotovil, katere besede so specifične za posameznega uporabnika je potrebno skupni imenovalec (najpogosteje uporabljane besede) izločiti, kar sem tudi predlagal. Še enkrat več si dokazal, da nimaš ne bralnega razumevanja (od kod si razbral, da avtor želi iskati podobne besede oz. generirati besedilo?), kot tudi ne znanja o inteligentni analizi podatkov. Še eden v vrsti tvojih egocentričnih izpadov s katerimi si očitno lajšaš komplekse. Žalostno.
@strawman je morda kakšen poseben razlog, da je potrebno pri vnosu id-ja dodati prefix "c"?
Irbis ::
Namesto najpogostejših besed je bolje izločiti prazne besede:
https://sl.wikiversity.org/wiki/Seznam_...
https://sl.wikiversity.org/wiki/Seznam_...
Greg91 ::
Perfektno to sem imel v mislih, za Slovenščino nisem imel pri roki povezave. Sicer pa bi bilo zanimivo glede na pogostost uporabe besed uporabnike gručiti. Morda bi kaj zanimivega zaznali.
kuall ::
Ni potrebe po tem. Tudi prazne besede nekaj povejo o človeku. Boljši pristp je primerjanje frekvence uporabe med posamezniki. In grupiranje posameznikov glede na frekvenco.
Gregec: izpad imaš ti, ne jaz :)
Gregec: izpad imaš ti, ne jaz :)
Zgodovina sprememb…
- spremenilo: kuall ()
strawman ::
Sem popravil par zadev, list besed se sedaj tudi shrani v celoti, ter userja ni več potrebno vnašati z "c" prefixom.
Na splošno sem bil malce razočaran nad rezultatom, predvsem kot ste tudi že mnogi omenili, da seznam vsebuje predvsem ene in iste besede pri večini userjev. Fokus na pridevnike, samostalnike in glagole bi bil bolj zanimiv.
Hvala, requests so se zgleda že nahajali na moji virtualki. Je ideja da vse skupaj prestavim tudi v en container da ne bo dependencyjev za lažjo uporabo. Mogoče naslednji vikend. :)
Ne, Slo-Tech zgleda to uporablja kot nek prefix, ko lista poste posamznega userja. Sem popravil da se sedaj vnese samo cifro.
Hvala! Tole definitivno implementiram kot nek blacklist v bližnji prihodnosti.
Čisto iz firbca in zaradi mraza zunaj :)
Kakšen namig s čem bi se lahko tega lotil v Pythonu? Predvidevam da ne gre le za premetavanje stringov in regex?
Ni slaba ideja, mogoče bi se s tem dalo iskati tudi več accountov istih ljudi :P
Se ne strinjam, če poženeš par wordcloudov so res vsi po večini isti. Pa še če bom scrapal podatke vseh userjev mi zna kdo na Slo-Techu blokirat IP, ker zna biti kar veliko requestov :D
Torej v prihodnosti dodam še:
- blacklist besed
- prestavim v Docker
- iskanje le po specifičnem threadu in ne po vseh postih
Edit: Aja pa update podre cache, izbriite tisti "c" pred IDjem v folderju (c123 -> 123).
Na splošno sem bil malce razočaran nad rezultatom, predvsem kot ste tudi že mnogi omenili, da seznam vsebuje predvsem ene in iste besede pri večini userjev. Fokus na pridevnike, samostalnike in glagole bi bil bolj zanimiv.
V navodilih pri zahtevanih knjižnicah dodaj še requests. Morda bi bilo smiselno zahtevane knjižnice shraniti v requests.txt ali pyproject.toml.
Hvala, requests so se zgleda že nahajali na moji virtualki. Je ideja da vse skupaj prestavim tudi v en container da ne bo dependencyjev za lažjo uporabo. Mogoče naslednji vikend. :)
@strawman je morda kakšen poseben razlog, da je potrebno pri vnosu id-ja dodati prefix "c"?
Ne, Slo-Tech zgleda to uporablja kot nek prefix, ko lista poste posamznega userja. Sem popravil da se sedaj vnese samo cifro.
Namesto najpogostejših besed je bolje izločiti prazne besede:
https://sl.wikiversity.org/wiki/Seznam_...
Hvala! Tole definitivno implementiram kot nek blacklist v bližnji prihodnosti.
a to delate za gugl analitiks ali pa kaksna privat firma, ali pa samo kar tako iz osebnega firbca?
Čisto iz firbca in zaradi mraza zunaj :)
jest sem nekaj podobnega naredil v parih urah par let nazaj s tem dodatkom, da pri vsaki besedi pokaže še vse besde, ki so podobne njej in vse stavke, kjer nastopa.
Kakšen namig s čem bi se lahko tega lotil v Pythonu? Predvidevam da ne gre le za premetavanje stringov in regex?
še ena ideja za ai program: pri forum uporabniku najdeš besede, ki so pogoste zanj. potem pa najdeš uporabnike, ki imajo za svoje pogoste besede take, ki so smiselno podobne prvemu uporabniku. na tak način bi našel uporabnike, ki razmišljajo podobno, imajo ista zanimanja, ali pa so enostavno iz istega konca slovenije ali so odraščali v podobnem okolju. koristno za kake zmenkarije npr.
Ni slaba ideja, mogoče bi se s tem dalo iskati tudi več accountov istih ljudi :P
Ni potrebe po tem. Tudi prazne besede nekaj povejo o človeku. Boljši pristp je primerjanje frekvence uporabe med posamezniki. In grupiranje posameznikov glede na frekvenco.
Se ne strinjam, če poženeš par wordcloudov so res vsi po večini isti. Pa še če bom scrapal podatke vseh userjev mi zna kdo na Slo-Techu blokirat IP, ker zna biti kar veliko requestov :D
Torej v prihodnosti dodam še:
- blacklist besed
- prestavim v Docker
- iskanje le po specifičnem threadu in ne po vseh postih
Edit: Aja pa update podre cache, izbriite tisti "c" pred IDjem v folderju (c123 -> 123).
Zgodovina sprememb…
- spremenilo: strawman ()
kuall ::
Za podobnost besed sem si jaz napisal čist svoj algo, ki je po moje boljši od ostalih, ki se jih da najti na netu. Če ti je dolgčas lahko še ti poskusiš. Če ne pa išči python string difference npr.
garamond ::
Te ideje, izboljšave so bile uporabljene za tisočkrat in imajo svoja imena:
- avtor je naredil BoW (Bag of Words)
- kuall je (približno) predlagal tf–idf
- Greg91 je predlagal grupiranje uporabnikov glede na podobnost. Tukaj ni več "avtomatične" izbire algoritmov. Na splošno je potrebno zmanjšati večdimenzialnost podatkov (ki je število različnih besed - tisoče) na bistveno manj - da jih lahko upodobimo na 2D grafu. Primeri so PCA, LSA, k-means algoritmi.
- avtor je naredil BoW (Bag of Words)
- kuall je (približno) predlagal tf–idf
- Greg91 je predlagal grupiranje uporabnikov glede na podobnost. Tukaj ni več "avtomatične" izbire algoritmov. Na splošno je potrebno zmanjšati večdimenzialnost podatkov (ki je število različnih besed - tisoče) na bistveno manj - da jih lahko upodobimo na 2D grafu. Primeri so PCA, LSA, k-means algoritmi.
A parody of extremism is impossible to differentiate from sincere extremism.
strawman ::
Za podobnost besed sem si jaz napisal čist svoj algo, ki je po moje boljši od ostalih, ki se jih da najti na netu. Če ti je dolgčas lahko še ti poskusiš. Če ne pa išči python string difference npr.
Hja slovenščina zna biti precej specifična pri sklanjanju in nek preprost string diff pomoje ne zadošča.
Te ideje, izboljšave so bile uporabljene za tisočkrat in imajo svoja imena:
- avtor je naredil BoW (Bag of Words)
- kuall je (približno) predlagal tf–idf
- Greg91 je predlagal grupiranje uporabnikov glede na podobnost. Tukaj ni več "avtomatične" izbire algoritmov. Na splošno je potrebno zmanjšati večdimenzialnost podatkov (ki je število različnih besed - tisoče) na bistveno manj - da jih lahko upodobimo na 2D grafu. Primeri so PCA, LSA, k-means algoritmi.
V to ne dvomim, ampak nisem iz sveta analize podatkov in se nisem pretirano poglabljal. Vsekakor hvala za specifične terme, si malo preberem.
kuall ::
Iskanje sklonov je težji problem. Imam v todo in plan je tudi že narejen za tak programček, sprogramirat se mi še ni dalo. Vsekakor je to čisto možno narediti.
Greg91 ::
@kuall Prosim, deli ta algoritem. Res me zanima na kak način si ovrednotil uspešnost algoritma in ugotovil superiornost tvojega algoritma. Ali bo kot vedno ostalo pri besedah?
Garamondov predlog je dober, ampak menim, da bi bilo smiselno zmanjšati dimenzijo na koncu, torej za vizualizacijo. Torej sam bi poizkusil najprej k-means clustering z uporabo klasične elbow metode za ugotavljanje stevila gruč ter nato redukcija značilnic z uporabo PCA ali kaj podobnega. Vse to se da enostavno implementirati s sklearn knjižnico. Kot dodatne značilnice bi poleg pogostosti besed lahko vključil tudi število odgovorov na dan, število odprtih tem, itd. Vsi takšni podatki bi lahko pozitivno prispevali k dobrem oz smiselnem gručenju uporabnikov.
Garamondov predlog je dober, ampak menim, da bi bilo smiselno zmanjšati dimenzijo na koncu, torej za vizualizacijo. Torej sam bi poizkusil najprej k-means clustering z uporabo klasične elbow metode za ugotavljanje stevila gruč ter nato redukcija značilnic z uporabo PCA ali kaj podobnega. Vse to se da enostavno implementirati s sklearn knjižnico. Kot dodatne značilnice bi poleg pogostosti besed lahko vključil tudi število odgovorov na dan, število odprtih tem, itd. Vsi takšni podatki bi lahko pozitivno prispevali k dobrem oz smiselnem gručenju uporabnikov.
Zgodovina sprememb…
- spremenil: Greg91 ()
baro2000 ::
Zanimivo je to, da se BoW vcasih najde kot naloga na razgovoru za job.
Mojih 5c (v javi):
Mojih 5c (v javi):
Map<String, Integer> storedValues; // O(n) List<String> sortedList; // O(n log n) // del za shranjevanje for (String word : words) { if (storedValues.containsKey(word)) { int wordsCount = storedValues.get(word) + NEW_WORD_COUNT; storedValues.replace(word, wordsCount); } else storedValues.put(word, NEW_WORD_COUNT); } // del za sortiranje sortedList = new ArrayList<>(storedValues.keySet()); sortedList.sort((x, y) -> storedValues.get(y) - storedValues.get(x));
IgorCardanof ::
@kuall Prosim, deli ta algoritem. Res me zanima na kak način si ovrednotil uspešnost algoritma in ugotovil superiornost tvojega algoritma. Ali bo kot vedno ostalo pri besedah?
Garamondov predlog je dober, ampak menim, da bi bilo smiselno zmanjšati dimenzijo na koncu, torej za vizualizacijo. Torej sam bi poizkusil najprej k-means clustering z uporabo klasične elbow metode za ugotavljanje stevila gruč ter nato redukcija značilnic z uporabo PCA ali kaj podobnega. Vse to se da enostavno implementirati s sklearn knjižnico. Kot dodatne značilnice bi poleg pogostosti besed lahko vključil tudi število odgovorov na dan, število odprtih tem, itd. Vsi takšni podatki bi lahko pozitivno prispevali k dobrem oz smiselnem gručenju uporabnikov.
Ena stvar je edit distance. To pomoje misli kuall. Hkrati pa je ta algoritem seveda veliko slabši pri prepoznavanju podobnosti besed kot recimo dober AI in neural networks.
Je pa edit distance dober algoritem za recimo iskanje prepisovalcev kode.
Retail investor, Simp, Crypto analyst, Cardano hejtr
Ne odgovarjam na DM.
Ne odgovarjam na DM.
garamond ::
Javljam zaznan bug - javilo je napako pri tem postu. Citat vsebuje za črko "č" Reverse line feed character, kar javi UnicodeEncodeError: 'charmap' codec can't encode character '\x8d'.
Rešil z dodatkom v vrstici 40:
Rešil z dodatkom v vrstici 40:
f = open(f"cache/{user_id}/{page_counter}_cache.txt", "w", encoding="utf-8") #dodano encoding(Povsem možno, da je to zaradi drugih verzij knjižnic kot bi morale biti, nisem preverjal.)
A parody of extremism is impossible to differentiate from sincere extremism.
Greg91 ::
@IgorCardanof kuall pravi, da je napisal čisto svoj algoritem. Edit distance pa je poznana metoda.
@baro2000 lepa rešitev. Ker Jave že nekaj časa redno ne uporabljam, me prosim popravi, če se motim. Map je vmesnik, torej bi v tem primeru ustvaril primerek razreda Hashmap, ki ima časovno zahtevnost v povprečju O(1) oz. v najslabšem primeru O(n)?
@baro2000 lepa rešitev. Ker Jave že nekaj časa redno ne uporabljam, me prosim popravi, če se motim. Map je vmesnik, torej bi v tem primeru ustvaril primerek razreda Hashmap, ki ima časovno zahtevnost v povprečju O(1) oz. v najslabšem primeru O(n)?
Zgodovina sprememb…
- spremenil: Greg91 ()
IgorCardanof ::
@IgorCardanof kuall pravi, da je napisal čisto svoj algoritem. Edit distance pa je poznana metoda.
@baro2000 lepa rešitev. Ker Jave že nekaj časa redno ne uporabljam, me prosim popravi, če se motim. Map je vmesnik, torej bi v tem primeru ustvaril primerek razreda Hashmap, ki ima časovno zahtevnost v povprečju O(1) oz. v najslabšem primeru O(n)?
Dvomim, da je zmožen zaznat razliko med dvema besedama, ki se razlikujeta samo v recimo 3ji črki. Ali pa 5. Zagotovo ne. Hkrati pa tudi zaznat razliko oz. enakost besed pri sklanjanju v vseh možnih oblikah. Tako da kolega nabija.
Retail investor, Simp, Crypto analyst, Cardano hejtr
Ne odgovarjam na DM.
Ne odgovarjam na DM.
Zgodovina sprememb…
- spremenilo: IgorCardanof ()
kuall ::
@kuall Prosim, deli ta algoritem. Res me zanima na kak način si ovrednotil uspešnost algoritma in ugotovil superiornost tvojega algoritma. Ali bo kot vedno ostalo pri besedah?
primerjal sem ga samo z eno priznano funkcijo Levenshtein Distance in na oko mi je zgledalo, da moj vrne bolj smiselne rezultate. nisem pa delal poglobljene primerjave z vsemi možnimi, sigurno obstaja boljši, jaz sem dokaj hitro spacal skupaj, kakšen dan vse skupaj vzelo, skupaj z načrtovanjem. moj nima kakih pomanjkljivosti, dela perfektno, kolikor sem na hitro stestiral zato pravim, da težko najdemo boljšega na internetu. je pa to dobra osnova za ai - prepoznava podobnosti stringov, se da to tudi dobro uporabit pri prepoznavi podobnosti slik, ker je primer bolj enostaven.
posebej je pomembno, da se besedi začneta in končata z isto črko, vmes pa je lahko poljubno premešano, dodano in odstranjeno in to ne spremeni razlike za dosti. tu je koda: https://pastebin.com/6xv07JHz
baro2000 ::
@Greg91 - prav si ugotovil, implementacija je HashMap. Casovni odvisnosti sta misljeni O(n) za shranjevanje besed in O(n log n) za sortiranje.
@IgorCardanof - lepo, da dvomis. Do tega, da bi bil siguren, pa ti verjetno manjka razumevanje jezika, ali kaj? Daj se enkrat preberi moj post pa mi povej kaj tocno nabijam.
@IgorCardanof - lepo, da dvomis. Do tega, da bi bil siguren, pa ti verjetno manjka razumevanje jezika, ali kaj? Daj se enkrat preberi moj post pa mi povej kaj tocno nabijam.
IgorCardanof ::
@Greg91 - prav si ugotovil, implementacija je HashMap. Casovni odvisnosti sta misljeni O(n) za shranjevanje besed in O(n log n) za sortiranje.
@IgorCardanof - lepo, da dvomis. Do tega, da bi bil siguren, pa ti verjetno manjka razumevanje jezika, ali kaj? Daj se enkrat preberi moj post pa mi povej kaj tocno nabijam.
Preberi vsaj zadnjih 6 postov prosim. Nisi v srediscu pozornosti.
Retail investor, Simp, Crypto analyst, Cardano hejtr
Ne odgovarjam na DM.
Ne odgovarjam na DM.
ytodf ::
tisti java BoW - HashSet in ArrayList.(quick)sort, ki je za job interviewe - za kakšen nivo?
kako bi delali s sklanjatvami? prepoznati moraš, da je beseda samostalnik (kako to narediš?), poiskati ustrezno sklanjatev (ki jih je enih par x 6 sklonov) in odrezati pripono? ali kako?
kako bi delali s sklanjatvami? prepoznati moraš, da je beseda samostalnik (kako to narediš?), poiskati ustrezno sklanjatev (ki jih je enih par x 6 sklonov) in odrezati pripono? ali kako?
IgorCardanof ::
Sploh to, ko se tudi menjajo črke.
Najboljši način za to je, da se uporabi aktualno razvite AI modele. Ali je to Bert ali Facebookov model ali pa od OpenAI nima pomoje veze. Ampak to bo zagotovo dalo 100x boljše rezultate kot karkoli "hardcodanega".
Najboljši način za to je, da se uporabi aktualno razvite AI modele. Ali je to Bert ali Facebookov model ali pa od OpenAI nima pomoje veze. Ampak to bo zagotovo dalo 100x boljše rezultate kot karkoli "hardcodanega".
Retail investor, Simp, Crypto analyst, Cardano hejtr
Ne odgovarjam na DM.
Ne odgovarjam na DM.
kuall ::
kako bi delali s sklanjatvami? prepoznati moraš, da je beseda samostalnik (kako to narediš?), poiskati ustrezno sklanjatev (ki jih je enih par x 6 sklonov) in odrezati pripono? ali kako?
statistični pristop bi znal najti vse sklanjatve. ne bi pa ločil med sklanjatvami in ostalimi pretvorbami besed iz ene oblike v drugo. npr tole:
unbelievable -> unFUCKINGbelievable
unsettling -> unFUCKINGsettling
bi vrgel pod sklanjatve. kar na en način tudi je.
z iskanjem analogij se da narediti marsikaj, tudi najti vse sklone v nekem jeziku.
primer:
miren -> mirnega
složen -> složnega
to je analogija. pravilo je pa: "en" na koncu se spremeni v "nega" na koncu.
da se spisat program, ki bo znal najti vse analogije v jeziku. to imam jaz v planu naredit in združit z sql za hitrejše iskanje po večjih količinah tekstov.
z analogijami se da tudi kategorizirat besede v samostalnike, glagole, živali... vse kategorije se da najti.
ytodf ::
kaj je ta omenjen statistični pristop?
misliš na besednjake/sezname samostalnikov, pridevnikov, glagolov in kar je še tega?
v vseh sklonih, številih, stopnjah, časih, osebah, naklonih...?
in potem bi primerjal zadetke iz oblik s korenom, da bi ugotovil ujemanje 'besednih zakladov'?
seveda, če je posamezen izraz pravilno vpisan in je vsebovan v besednjakih?
te omenjene analogije so sicer sklanjatve in spregatve itn...
teoretično sicer ni posebne težave, amebis je besano kar daleč pripeljal in trži;
prihodki so videti precej povprečni za nekje 6-7 zaposlenih...
misliš na besednjake/sezname samostalnikov, pridevnikov, glagolov in kar je še tega?
v vseh sklonih, številih, stopnjah, časih, osebah, naklonih...?
in potem bi primerjal zadetke iz oblik s korenom, da bi ugotovil ujemanje 'besednih zakladov'?
seveda, če je posamezen izraz pravilno vpisan in je vsebovan v besednjakih?
te omenjene analogije so sicer sklanjatve in spregatve itn...
teoretično sicer ni posebne težave, amebis je besano kar daleč pripeljal in trži;
prihodki so videti precej povprečni za nekje 6-7 zaposlenih...
Zgodovina sprememb…
- spremenilo: ytodf ()
Phantomeye ::
Kaj pa strojno učenje. Programu feedaš objave na slotechu in pol lahko na podlagi nekega sestavka identificiraš uporabnika oz. posledično vse njegove sekundarne uporabniške račune. To bi znalo naredit štalo :D
kuall ::
@ytodf statistični pristop ne rabi nobenih slovarjev ampak si jih sam skreira. tudi ko bo dal besede v kategorijo "samostalnik" ne bo vedel, da se ta kategorija imenuje samostalnik ampak jo bo poimenoval Kategorija9358. pol ko bo bral človeške tekste bo opazil, da so ljudje kategorijo, ki vsebuje iste člene poimenovali "samostalniki" in bo še on kategorijo Kategorija9358 preimenoval v "samostalnik", da bo uskalejno z ljudmi.
ytodf ::
torej ne boš iskal po korenih besed ampak boš obravnaval besedo v vsakem sklonu/število/načinu/času posebej... kako uspešen, pričakuješ, bo tvoj algoritem?
strawman ::
Javljam zaznan bug - javilo je napako pri tem postu. Citat vsebuje za črko "č" Reverse line feed character, kar javi UnicodeEncodeError: 'charmap' codec can't encode character '\x8d'.
Rešil z dodatkom v vrstici 40:
f = open(f"cache/{user_id}/{page_counter}_cache.txt", "w", encoding="utf-8") #dodano encoding(Povsem možno, da je to zaradi drugih verzij knjižnic kot bi morale biti, nisem preverjal.)
Hvala lepa, popravljeno.
kuall ::
torej ne boš iskal po korenih besed ampak boš obravnaval besedo v vsakem sklonu/število/načinu/času posebej... kako uspešen, pričakuješ, bo tvoj algoritem?
precej bo uspešen, ker sem ta pristop že testiral in je že dajal uspešne rezultate. gre se za precej splošen pristop, podobno kot nevronske mreže, ki se ga da uporabit za kategoriziranje/iskanje ponavljajočih vzorcev na katerih koli podatkih, ne samo pri besedah in sklonih.
gre se v bistvu za iskanje podobnosti (analogij) in kategoriziranje na podlagi podobnosti. večina IQ testov je tudi baziranih na iskanju podobnosti/analogij, če ne vsi. tudi nevronske mreže v svojem bistvu delajo to.
skloni so le en ponavljajoči vzorec. jih pa kar mrgoli povsod v jeziku in svetu.
ytodf ::
gre se v bistvu za iskanje podobnosti (analogij) in kategoriziranje na podlagi podobnosti. večina IQ testov je tudi baziranih na iskanju podobnosti/analogij, če ne vsi. tudi nevronske mreže v svojem bistvu delajo to.
skloni so le en ponavljajoči vzorec. jih pa kar mrgoli povsod v jeziku in svetu.
Saj deklinacije in konjungacije že formalizirajo 'podobnosti', ti lahko samo na osnovi tega izvlečeš korensko besedo, kjer preskočiš vsa pregibanja (ki veljajo za samostalnike, glagole, pridevnike) in na osnovi tega primerjaš in iščeš preseke dveh ali več uporabnikov. Angleščina je s svojo slovnico enostavna za analizo in primerjave, slovenščina s svojo slovnico pa ne. Samo izgleda, da se ne razumemo, ti boš najprej svojo mrežo najprej ZELOOOO naučiti celotnega slovenskega besednega zaklada z vsemi pregibanj besed različnih vrst, moja predlog algoritma pa izhaja iz formalizma jezika samega po sebi, dela 'reverse lookup' besedila glede na uradna pravila slovnice za slovenščino (zaenkrat prevladujoč jezik na slo-tech).
Sicer pa, meni je precej vseeno, kakšne rešitve uporabljaš.
Zgodovina sprememb…
- spremenilo: ytodf ()
kuall ::
Ne razumem te dobro o čem govoriš ampak lahko ti navržem par random misli:
- algoritem ne pozna pojma "koren" besede niti mu ga ni treba poznati. za kateri jezik se gre nima veze, moj algoritem bi moral delati na vseh jezikih uspešno in to enako uspešno. nima smisla not tlačit neka slovnična pravila, ki jih ima samo en jezik.
- podobnost podobnosti je važna. tu pa analogije blestijo. torej abstraktne in skrite podobnosti. to pomeni to: če sta dve stvari podobni na način A potem ju damo v kategorijo CA. Če sta dve stvari podobni na način B ju damo v kategorijo CB. mogoče se to celo da narediti še bolj abstraktno: podobnost kategorij.
- algoritem ne pozna pojma "koren" besede niti mu ga ni treba poznati. za kateri jezik se gre nima veze, moj algoritem bi moral delati na vseh jezikih uspešno in to enako uspešno. nima smisla not tlačit neka slovnična pravila, ki jih ima samo en jezik.
- podobnost podobnosti je važna. tu pa analogije blestijo. torej abstraktne in skrite podobnosti. to pomeni to: če sta dve stvari podobni na način A potem ju damo v kategorijo CA. Če sta dve stvari podobni na način B ju damo v kategorijo CB. mogoče se to celo da narediti še bolj abstraktno: podobnost kategorij.
silver7mikey ::
Algoritem fantje in dekleta ko prideš do tega je veliko več kot štetje in preštevanje besed
LINK
Imagine walking around with one,word,one,desire walking around and talking withouth saying a word or desire.
LINK
Imagine walking around with one,word,one,desire walking around and talking withouth saying a word or desire.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Kotiček za slovenščino (strani: 1 2 3 )Oddelek: Loža | 13554 (8892) | Meizu |
» | Kako pretentati samovozeče avtomobile z zlonamernimi prometnimi znaki (strani: 1 2 )Oddelek: Novice / Varnost | 24421 (19680) | Mare2 |
» | Človeški jezik (strani: 1 2 )Oddelek: Znanost in tehnologija | 17274 (13589) | kuall |
» | Seznam slovenskih besedOddelek: Programiranje | 7359 (4849) | bubadiop |
» | Nemščina - je tole pravilno?Oddelek: Šola | 3015 (2615) | Invictus |