Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

Text classification

Pagina: 1
Acties:

  • woutwoot
  • Registratie: februari 2012
  • Laatst online: 29-12-2019
Ik probeer in Java 2 verschillende soorten domains te onderscheiden. (wel hoofdlettergevoelig hier)

Voorbeeld van set 1:
h6.hjnsfb.Rn.z.L
xmC41bL5.aRL3cmg
H.QsE.XrG.URGyND
EzvFQVs.QoMcXgva
k.t.H.x.G.b.tcQJ

Voorbeeld van set 2:
voorbeeld.nu.pro
een.ander.Iets2d
de666.test.test2
TEST.TEST.VOOR.A
lang.de.groot.ik

De bedoeling is dus om een onderscheid te kunnen maken tussen deze 2 sets met mogelijke domain names, op een zo makkelijk en efficient mogelijke manier, met als doel om de 1e soort domains te kunnen detecteren, met zo veel mogelijk accuracy, maar bij de 2e soort zo weinig mogelijk false positives te hebben.

Wat ik al geprobeerd heb:
  • Combinatie van verschillende methoden (kijken naar het aantal hoofdletters, hoe vaak die zich afwisselen, ...) zo kwam ik tot 14% false negatives, maar ik denk dat dat beter moet kunnen.
  • Naive Bayes classifier: dat lukte helemaal niet. Misschien komt het door het soort strings.
Heeft er iemand tips voor een goede manier om dit aan te pakken in Java? Liefst met zo weinig mogelijk code overhead.

[Voor 5% gewijzigd door woutwoot op 14-01-2018 14:33]


  • RobIII
  • Registratie: december 2001
  • Laatst online: 19:40

RobIII

Admin Devschuur®

^ Romeinse 3 ja!

Is het specifiek random meuk vs. nederlandse tekst? Want dan neem je er toch gewoon een woordenboek bij :? Verder zie ik nog wel andere verschillen zoals dat de eerste set mixed case gebruikt waar dat in de tweede set niet voorkomt en dat de eerst set 1-letter (sub)domeinen heeft waar de tweede set dat niet heeft e.d. Maar dat zal wel gewoon aan 't voorbeeld liggen?
quote:
woutwoot schreef op zondag 14 januari 2018 @ 14:31:
Heeft er iemand tips voor een goede manier om dit aan te pakken in Java? Liefst met zo weinig mogelijk code overhead.
We gaan hier sowieso niet de code voor je schrijven; we kunnen je hooguit in de juiste richting wijzen ;) Zie ook Kan iemand even...? / scriptrequests en:
quote:
Give a man a fish and feed him for a day. Teach a man how to fish and feed him for a lifetime.
:Y)

[Voor 102% gewijzigd door RobIII op 14-01-2018 14:38]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • orf
  • Registratie: augustus 2005
  • Nu online
Wat is de classificatie? Domeinnamen gefilterd op woorden langer dan 1(?) teken en gefilterd op cijfers? Waarbij de woorden in een Nederlands woordenboek staan?

Zo ja, dan moet je aan de slag met een woordenboek.

Edit: Fijn dat RobIII hetzelfde zegt. :P

[Voor 11% gewijzigd door orf op 14-01-2018 14:37]


  • woutwoot
  • Registratie: februari 2012
  • Laatst online: 29-12-2019
quote:
RobIII schreef op zondag 14 januari 2018 @ 14:35:
Is het specifiek random meuk vs. nederlandse tekst? Want dan neem je er toch gewoon een woordenboek bij :?
Bijna. De text kan in eender welke taal zijn en er kunnen ook afkortingen of getallen inzitten. Het is dus niet specifiek echt leesbaar. Een woordenboek van enkele korte woorden zou misschien wel al helpen.

  • RobIII
  • Registratie: december 2001
  • Laatst online: 19:40

RobIII

Admin Devschuur®

^ Romeinse 3 ja!

quote:
woutwoot schreef op zondag 14 januari 2018 @ 14:37:
[...]

Bijna. De text kan in eender welke taal zijn en er kunnen ook afkortingen of getallen inzitten.
Dan zou ik eens beginnen met een representief voorbeeld te geven. Want op basis van wat je ons nu geeft waren we dus bijna verkeerde aannames gaan maken (er staat immers alleen maar Nederlands in de tweede set).

Laat ik het zo zeggen: op basis van je voorbeeld sets haal ik een 100% score met de simpele regel:

If mixed-case then set 1 else set 2

Voila.
quote:
woutwoot schreef op zondag 14 januari 2018 @ 14:37:
Het is dus niet specifiek echt leesbaar. Een woordenboek van enkele korte woorden zou misschien wel al helpen.
Dan is de vraag: alleen Nederlands en Engels (en Duits en Swahili...)? M.a.w. een "beperkte" set? Of écht elke willekeurige taal? En, zoals ik in mijn edit aangaf, er zijn nog wel andere verschillen te vinden maar ik neem aan dat dat ook te maken heeft met de (te) kleine sample-set die je ons gaf?

[Voor 14% gewijzigd door RobIII op 14-01-2018 14:48]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • woutwoot
  • Registratie: februari 2012
  • Laatst online: 29-12-2019
Het is helemaal niet de bedoeling dat jullie het voor mij gaan doen. Ik doe dit vooral om wat te leren. Volgens mij moet dit mogelijk zijn met hoge accuracy en ik probeer dat te implementeren zonder een hele hoop onnodige code.
Ik denk nu dat dit misschien interessant kan zijn: YouTube: The Zipf Mystery
De talen kunnen in principe alles zijn, het moeten zelfs geen echte woorden zijn.

  • orf
  • Registratie: augustus 2005
  • Nu online
quote:
woutwoot schreef op zondag 14 januari 2018 @ 15:18:
De talen kunnen in principe alles zijn, het moeten zelfs geen echte woorden zijn.
Dus alles voldoet, ook set 1?

  • Reptile209
  • Registratie: juni 2001
  • Laatst online: 17:22

Reptile209

- gers -

Als je eenduidig kunt omschrijven op basis van welke kenmerken iets in de ene of in de andere set komt (of waarschijnlijker: een score op een bepaald kenmerk), dan zal het programmeren daarvan al niet meer zo lastig zijn. Je geeft nu 2 beperkte voorbeelden, wat zijn de achterliggende kenmerken waar je op wil toetsen?

If you're not part of the solution, you're part of the precipitate.


  • RobIII
  • Registratie: december 2001
  • Laatst online: 19:40

RobIII

Admin Devschuur®

^ Romeinse 3 ja!

quote:
orf schreef op zondag 14 januari 2018 @ 15:28:
[...]


Dus alles voldoet, ook set 1?
Precies. De definitie wordt alleen maar vager i.p.v. duidelijker. @woutwoot Je zult écht met een duidelijker definitie danwel met een duidelijkere set voorbeelden moeten komen. Zoals ik al aangaf is, op basis van wat je gaf, makkelijk een regel te maken die 100% scoort, maar klaarblijkelijk is dat niet wat je wil of niet goed genoeg of nauwkeurig genoeg of...?

[Voor 12% gewijzigd door RobIII op 14-01-2018 15:46]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • woutwoot
  • Registratie: februari 2012
  • Laatst online: 29-12-2019
Het gaat hier om het verschil maken tussen random domain names en echte domain names, maar unlike the real world wil ik hier wel ook nog lower/uppercase balang laten hebben. (zoals java packages)

Een domain name zal zelden echt volledig random zijn, maar het kan wel. Er zullen altijd wel false positives zijn. Domain names kunnen in alle talen zijn, of afkortingen voor bedrijven etc. Alle domains die ik test zijn van dezelfde lengte.

Ik kan dus moeilijk eenduidig zeggen waarom iets random is. Iets wat bijvoorbeeld opvalt zijn veel cijfers. Of vaak switchen tussen upper en lowercase.

[Voor 15% gewijzigd door woutwoot op 14-01-2018 15:54]


  • HuHu
  • Registratie: maart 2005
  • Niet online
Ik snap er nog steeds niets van: wat is nu je vraag?

Kijken of iets een mogelijke domeinnaam is? Daar zijn gewoon regels voor die je kunt opzoeken.

  • kaesve
  • Registratie: maart 2009
  • Nu online
heb je toevallig een gelabelde dataset beschikbaar? Hoe ben je van plan te testen hoe goed je oplossing is?

  • woutwoot
  • Registratie: februari 2012
  • Laatst online: 29-12-2019
De vraag lijkt voor mij niet te ingewikkeld: Is een domain name random of niet? Het is een fictief probleem om meer te leren over classification van Strings. Een mogelijk doel zou kunnen zijn om te kijken of een website subdomain "verdacht" is.

Ik zit nu hier te kijken en dat lijkt me erg interessant. Ik denk dat ik zo wel verder kan. http://norvig.com/mayzner.html

Ik heb voor mezelf 2 sample sets gemaakt, die kan ik wel posten, maar het is gewoon zelf verzonnen tekst en random generated strings.

  • kaesve
  • Registratie: maart 2009
  • Nu online
hoe groot zijn je sample sets? dat heeft nogal invloed op hoe goed een machine learning-achtige aanpak zal gaan werken. Voor de sets die je al hebt gepost zou ik hoofdlettergevoeligheid laten varen -- er lijkt helemaal geen informatie in te zitten die zou kunnen helpen. Je wil het jezelf zo makkelijk mogelijk maken, en dat doe je door het onderscheid tussen de twee sets zo groot mogelijk te maken. Hoe meer onnodige informatie je weg kan strepen, hoe beter. Ik zou dus bijvoorbeeld ook goed nadenken of je digits niet ook weg kan laten, of als word-separator kan laten gelden. Ik denk inderdaad dat daarna checken van bigram frequenties al vrij snel goede resultaten zouden moeten geven,

  • DJMaze
  • Registratie: juni 2002
  • Niet online
Zoek je niet gewoon de klinkerstapeling en medeklinkerstapeling?

Zo ja, neem dan gelijk "angstschreeuw.nl" en "koeieuier.nl" mee in je controles :)

[Voor 6% gewijzigd door DJMaze op 14-01-2018 16:50]

Maak je niet druk, dat doet de compressor maar


  • HenkEisjedies
  • Registratie: maart 2004
  • Laatst online: 16:07
HIer gaan ze op dezelfde vraag in volgens mi: https://stackoverflow.com...4/random-string-detection

Wikipedia: Kolmogorov complexity
Wikipedia: Diehard tests

[Voor 16% gewijzigd door HenkEisjedies op 14-01-2018 17:17]


  • HuHu
  • Registratie: maart 2005
  • Niet online
quote:
woutwoot schreef op zondag 14 januari 2018 @ 16:09:
De vraag lijkt voor mij niet te ingewikkeld: Is een domain name random of niet? Het is een fictief probleem om meer te leren over classification van Strings. Een mogelijk doel zou kunnen zijn om te kijken of een website subdomain "verdacht" is.

Ik zit nu hier te kijken en dat lijkt me erg interessant. Ik denk dat ik zo wel verder kan. http://norvig.com/mayzner.html

Ik heb voor mezelf 2 sample sets gemaakt, die kan ik wel posten, maar het is gewoon zelf verzonnen tekst en random generated strings.
De vraag is voor jou niet ingewikkeld, omdat je hem weet. Maar je hebt in dit topic de vraag nog niet duidelijk over kunnen brengen aan anderen. Dat is het voornaamste probleem, daarna kunnen we je pas helpen.

De vraag of een domeinnaam random is noem je nu pas, dat staat niet in de openingspost. Welke informatie heb je nog meer niet gedeeld? Wat is nu exact je vraag?

Aan domeinnamen zijn bijvoorbeeld allerlei regels verbonden, gelden die ook in dit probleem? Want al je voorbeelden lijken geen geldige domeinnamen, omdat de TLDs niet bestaan.

  • RobIII
  • Registratie: december 2001
  • Laatst online: 19:40

RobIII

Admin Devschuur®

^ Romeinse 3 ja!

Je zou ook gewoon een DNS lookup kunnen doen als het niet puur hypothethisch is. Maar eens met de rest en eerdere mezelf ( :P ): wat wil je nou? ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • Puch-Maxi
  • Registratie: december 2003
  • Laatst online: 07-04 23:26
Volgens mij gaat het specifiek om Java package domain names? In dat geval zou het moeten beginnen met een TLD http://www.oracle.com/tec...deconventions-135099.html

My favorite programming language is solder.


  • woutwoot
  • Registratie: februari 2012
  • Laatst online: 29-12-2019
quote:
Puch-Maxi schreef op zondag 14 januari 2018 @ 19:28:
Volgens mij gaat het specifiek om Java package domain names? In dat geval zou het moeten beginnen met een TLD http://www.oracle.com/tec...deconventions-135099.html
Dat is waar het idee oorspronkelijk van komt. Ik kwam op het idee om hier malware mee te kunnen detecteren, omdat die zich soms verstoppen achter random packages. In dit geval probeer ik het echter niet toe te passen, maar was het eerder een uitdaging voor mezelf.

Ondertussen heb ik een implementatie die gewichten geeft aan bepaalde letters, maar doordat de domains redelijk kort zijn werkt dat niet zo goed. Als ik de domains in mijn sample set langer maak dan werkt het erg goed, zeker in combinatie met mijn andere meer primitieve technieken. Bedankt me te proberen verder helpen. Ik zal in de toekomst proberen mijn vragen duidelijker te formuleren :)
Pagina: 1


Apple iPhone 11 Microsoft Xbox Series X LG OLED C9 Google Pixel 4 CES 2020 Samsung Galaxy S20 4G Sony PlayStation 5 Nintendo Switch Lite

'14 '15 '16 '17 2018

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2020 Hosting door True