Kuva: Pixabay
Artikkeli on toteutettu osana Muutoskyvykkyyttä avoimen lähdekoodin osaamisen avulla (Open MemoryLab) -hanketta. Lue lisää hankkeen sivuilta: www.xamk.fi/tutkimus-ja-kehitys/openmemorylab/
Hankkeen toteutus: 01.10.2022 – 31.12.2023
Rahoittaja ja päärahoituslähde: Etelä-Savon elinkeino-, liikenne- ja ympäristökeskus, Euroopan sosiaalirahasto (ESR) REACT-EU
Tuotamme päivittäin valtavia tekstidatamääriä, joissa voi piillä yrityksille ja organisaatioille korvaamatonta tietoa toimintansa tueksi. Kuitenkin suuri osa tekstidatasta on jäsentelemätöntä ja yrityksillä voi olla vaikeaa määritellä, miten tehokkaasti hyödyntää ja analysoida kerättyä tekstidataa.
Vapaan tekstin analysoinnilla pyritään etsimään relevanttia tietoa nimenomaan tekstidatasta. Luonnollisen kielenkäsittelyn (natural language processing, NLP) tavoitteena on tekoälyn keinoin tehdä ihmiskieli ymmärrettäväksi koneille. NLP:n ja tekstianalytiikan avulla voidaan automatisoida tekstiaineistojen käsittelyä, vähentää manuaalisia työvaiheita ja näin vähentää ihmisten tekemiä virheitä. Tekstianalytiikan avulla on mahdollista helposti analysoida suuriakin tekstimääriä ja löytää jäsentelemättömästä tekstistä erilaisia toistuvuuksia, oivalluksia, trendejä ja muita ilmiöitä. Teksianalytiikan avulla voidaan jakaa ja luokitella valtavia tietomääriä muun muassa aiheittain, yksittäisiksi lauseiksi ja avainsanoiksi sekä muodostaa näistä sanoista esimerkiksi erilaisia sanapilviä. Rakenneanalyysin lisäksi voidaan perehtyä kielen semanttisiin tasoihin eli merkityksiin digitaalisessa tekstiaineistossa. Usein teksteissä on havaittavissa myös tunteita. Näiden tekstianalyysien tuloksia on myös hyvä visualisoida. Käy lukemassa datan visualisoinnista tarkemmin aiemmin julkaisemastamme artikkelista.
Vapaan tekstin analysointiin on saatavilla lukuisia avoimen lähdekoodin ratkaisuja. Alla on listattuna muutamia suosituimpia työkaluja datatieteilijöille tekstidatan analysointiin.
NLTK
Natural Language Toolkit (NLTK) on Pythonille kehitetty suosittu ja monipuolinen avoimen lähdekoodin työkalu ja NLP-kirjasto tekstin analysointiin. Muihin kirjastoihin verrattuna se tukee useimpia kieliä ja pitää sisältää erilaisia NLP-tekniikoita (ml. luokittelu, tokenisointi, stemming, tagging, jäsentäminen ja semanttinen päättely). NLTK on erityisen suosittu akateemisissa tutkimusyhteisöissä sekä kieliteknologian ammattilaisten keskuudessa. Aloittelijalle ratkaisu saattaa kuitenkin olla hieman vaikea ymmärtää ja käyttää.
Lisenssi: Apache License 2.0
Koodi: github.com/nltk/nltk
Lisätietoja: www.nltk.org/index.html
TextBlob
Avoimen lähdekoodin Python-pohjainen TextBlob on laajalti käytetty ja yksinkertainen eräänlainen laajennus edellä esiteltyyn NLTK-ratkaisuun. TextBlob on loistava vaihtoehto erityisesti pienempiin projekteihin ja aloittelijoille, jotka haluavat suorittaa NLP-tehtäviä, kuten tunteiden analysointia, tekstin luokittelua ja puheen osan merkitsemistä.
Lisenssi: MIT License
Koodi: github.com/sloria/textblob
Lisätietoja: textblob.readthedocs.io/en/dev/
SpaCy
SpaCy on Pythonille kehitetty helppokäyttöinen ratkaisu suuriin tietomääriin ja se sisältää lukuisia jo koulutettuja malleja luonnollisen kielen käsittelyyn, mikä helpottaa oppimista, opettamista ja luonnollisen kielen käsittelyä. Lisäksi SpaCyssä kaikki on esitetty objektina merkkijonon sijaan, mikä yksinkertaistaa sovellusten kehittämisen käyttöliittymää. Myös yhteyden muodostaminen muihin kehyksiin ja datatieteen työkaluihin on helpompaa. SpaCy on suosittu valinta monien kehittäjien ja datatieteilijöiden keskuudessa. Tosin SpaCy ei tue niin montaa eri kieltä kuin esimerkiksi edellä esitelty NLTK.
Lisenssi: MIT license
Koodi: github.com/explosion/spaCy
Lisätietoja: spacy.io
Gensim
Gensim on yksi parhaista ilmaisista avoimen lähdekoodin Python-kirjastoista asiakirjojen ilmaisuun semanttisina vektoreina ja niiden analysointiin koneoppimismenetelmien avulla. Gensim pystyy analysoimaan raakaa, jäsentymätöntä tekstiä käyttämällä eri koneoppimisen menetelmiä. Se pystyy käsittelemään suuriakin tietomääriä tehokkaasti ja nopeasti sekä löytämään tekstistä yhtäläisyyksiä, toisiaan muistuttavia tekstejä, indeksoimaan sisältöä ja navigoimaan eri tekstien välillä.
Lisenssi: GNU Lesser General Public License v2.1
Koodi: github.com/RaRe-Technologies/gensim
Lisätietoja: radimrehurek.com/gensim/#
Voyant Tools
Voyant Tools on web-pohjainen ja helppokäyttöinen avoimen lähdekoodin ratkaisu tekstianalyysien suorittamiseen. Se sisältää monia työkaluja, kuten sanapilviä, sanatiheyksiä, frekvenssilistoja ja yhteyskarttoja. Voyant Toolsin avulla käyttäjät voivat tarkastella aineistojen rakenteita, teemoja ja yhteyksiä helposti ja nopeasti. Lisäksi mikäli ei halua aineistonsa päätyvän ulkomaalaiselle palvelimelle, Voyant Tools tarjoaa myös mahdollisuuden ladata sen Java-pohjaisen serverin omalle tietokoneelle.
Lisenssi: GPL 3.0 License
Koodi: github.com/voyanttools/Voyant
Lisätietoja: voyant-tools.org
Apache OpenNLP
Apache OpenNLP koneoppimiseen perustuva, kattava avoimen lähdekoodin NLP-työkalu ja kirjasto, jota voidaan käyttää komentoriviltä tai kirjastona sovelluksessa. Se tarjoaa myös laajan kielituen ja mahdollistaa NLP-perustehtävät sekä sitä voidaan käyttää myös monimutkaisempien tekstinkäsittelysovellusten luomiseen.
Lisenssi: Apache License 2.0
Koodi: opennlp.apache.org/source-code.html
Lisätietoja: opennlp.apache.org
AllenNLP
AllenNLP on PyTorch-pohjainen helppokäyttöinen avoimen lähdekoodin alusta, joka on kehitetty helpottamaan NLP-tehtävien ratkaisemista ja tutkimusta. AllenNLP tarjoaa laajan valikoiman esikoulutettuja malleja ja soveltuu erinomaisesti tutkimiseen ja kokeilemiseen.
Lisenssi: Apache License 2.0
Koodi: github.com/allenai/allennlp
Lisätietoja: allenai.org/allennlp