Merkkijonojen vertailu sumeaa logiikkaa hyödyntäen
Hämäläinen, Joni (2023)
Hämäläinen, Joni
2023
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2023060622154
https://urn.fi/URN:NBN:fi:amk-2023060622154
Tiivistelmä
Opinnäytetyön tavoitteena oli toteuttaa Python-ohjelma, joka vertailee kahden aineiston merkkijonoja keskenään ja luoda yhtäläisyyksien pohjalta uusi pandas-taulukko. Työ toteutettiin toimeksiantona, jonka antoi XAMK Datalab Kouvola, Dataamo-hanke. Opinnäytetyössä tutkitaan ohjelmassa esiintyviä tekniikoita ja käsitteitä. Työssä keskitytään erityisesti sumeaan logiikkaan ja Levenšteinin etäisyyteen, joiden pohjalta on rakennettu työssä käytettävä FuzzyWuzzy-kirjasto, jonka avulla merkkijonojen vertailu toteutetaan. Teoriaosuudessa käsitellään myös pandas, jonka DataFrame-objektina ohjelman tulokset palautetaan. Käsitteiden ja tekniikoiden esittelyn jälkeen käydään läpi ohjelman ensimmäisen version toimintaperiaate, ohjelman uuden version toteutus sekä ohjelman versioiden välinen vertailu. Ohjelma jakautuu kolmeen suurempaan funktioon, joiden vaiheet käydään tarkemmin läpi. Ohjelman toteutuksen jälkeen suoritetaan vielä testejä, joilla vertaillaan ohjelman ensimmäistä ja tässä työssä toteutettua versiota ja vedetään yhteen tästä saadut tulokset. Ohjelman tavoitteena on vertailla patenttihakemuksien tekijöitä ja yrityksien nimiä keskenään ja näiden merkkijonojen ollessa tarpeeksi lähellä toisiaan lisätä yhtäläisyys pandas-taulukkoon. Ohjelma myös mahdollisesti muokkaa läpikäytävää dataa haluttuun muotoon erilaisilla RegEx-toiminnoilla. Lopuksi yhtäläisyyksien pohjalta luotu taulukko voidaan lähettää esimerkiksi haluttuun tietokantaan. Tavoitteet tässä opinnäytetyössä täyttyivät kaikilta osin. Työn lopputuloksena saatiin merkkijonoja vertaileva Python-ohjelma, joka on toiminnaltaan ja tehokkuudeltaan edeltävää versiotaan parempi. Toimeksiantaja sai käyttöönsä ohjelman, jota se voi käyttää hankkeessaan ja mahdollisesti vielä jatkokehittää tulevaisuudessa. Työn lopussa käydään läpi ajatuksia, joita projekti herätti, sekä minkälaisia valmiuksia se antaa tulevaisuuden työuraa ajatellen.