- Terminologia (A–D)
- AI Capability Control
- AI Ops
- Albuminaatiot
- Omaisuuden suorituskyky
- Automaattinen kooderi
- backpropagation
- Bayes-lause
- Big Data
- Chatbot: Aloittelijan opas
- Laskennallinen ajattelu
- Tietokoneen visio
- Sekaannusmatriisi
- Neuvontaverkot
- tietoverkkojen
- Tietokangas
- Tietojen tarinankerronta
- data Science
- Tietovarastointi
- Päätöspuu
- Deepfakes
- Deep Learning
- Syvävahvistusoppiminen
- DevOps
- DevSecOps
- Diffuusiomallit
- Digitaalinen Twin
- Ulottuvuuden pienentäminen
- Terminologia (E–K)
- Edge AI
- Emotion AI
- Yhtye-oppiminen
- Eettinen hakkerointi
- ETL
- Selitettävä AI
- Federoitu oppiminen
- FinOps
- Generatiivinen AI
- Generatiivinen kilpaileva verkosto
- Generatiivinen vs. syrjivä
- Liukuvärjäys
- Kaltevuuslasku
- Muutaman laukauksen oppiminen
- Kuvien luokittelu
- IT-toiminnot (ITOps)
- Tapahtumaautomaatio
- Vaikutustekniikka
- K-tarkoittaa klusterointia
- K-Lähimmät naapurit
- Terminologia (L–Q)
- Terminologia (R–Z)
AI 101
Kuinka tekstin luokittelu toimii?
Sisällysluettelo
Tekstin luokittelu on prosessi, jossa analysoidaan tekstisarjoja ja määritetään niille tunniste ja laitetaan ne ryhmään sisällön perusteella. Tekstin luokittelu on lähes minkä tahansa tekoäly- tai koneoppimistehtävän perustana, joka sisältää luonnollisen kielenkäsittelyn (NLP). Tekstiluokituksen avulla tietokoneohjelma voi suorittaa monia erilaisia tehtäviä, kuten roskapostin tunnistusta, tunteiden analysointia ja chatbot-toimintoja. Miten tekstin luokittelu toimii tarkalleen? Mitä eri menetelmiä tekstin luokittelussa on? Tutkimme vastauksia näihin kysymyksiin alla.
Tekstin luokituksen määrittäminen
On tärkeää ottaa aikaa ja varmistaa, että ymmärrämme mikä on tekstin luokitteluyleensä ennen kuin perehdymme tekstin luokittelun eri menetelmiin. Tekstin luokittelu on yksi niistä termeistä, joita käytetään moniin erilaisiin tehtäviin ja algoritmeihin, joten on hyödyllistä varmistaa, että ymmärrämme tekstin luokittelun peruskäsitteen, ennen kuin siirrymme tutkimaan erilaisia tapoja, joilla se voidaan suorittaa.
Tekstiluokituksena voidaan pitää kaikkea, mikä edellyttää eri luokkien luomista tekstille ja erilaisten tekstinäytteiden merkitsemistä näiksi luokiksi. Niin kauan kuin järjestelmä suorittaa nämä perusvaiheet, sitä voidaan pitää tekstin luokittelijana riippumatta siitä, mitä menetelmää tekstin luokittelussa on käytetty, ja riippumatta siitä, miten tekstiluokitinta lopulta käytetään. Sähköpostiroskapostin havaitseminen, asiakirjojen järjestäminen aiheen tai otsikon mukaan ja tuotteen arvostelun tunteen tunnistaminen ovat kaikki esimerkkejä tekstin luokittelusta, koska ne saadaan aikaan käyttämällä tekstiä syötteenä ja tulostamalla luokkatunniste kyseiselle tekstille.
Kuinka tekstin luokittelu toimii?
Useimmat tekstin luokittelumenetelmät voidaan sijoittaa johonkin kolmesta eri kategoriasta: sääntöpohjaiset menetelmät tai koneoppimismenetelmät.
Sääntöön perustuvat luokitusmenetelmät
Sääntöihin perustuvat tekstin luokittelumenetelmät toimivat eksplisiittisesti suunniteltujen kielellisten sääntöjen avulla. Järjestelmä määrittää insinöörin luomien sääntöjen avulla, mihin luokkaan tietyn tekstin tulee kuulua, ja etsii vihjeitä semanttisesti relevanttien tekstielementtien muodossa. Jokaisella säännöllä on malli, jota tekstin on vastattava, jotta se voidaan sijoittaa vastaavaan luokkaan.
Tarkemmin sanottuna oletetaan, että halusit suunnitella tekstiluokituksen, joka pystyy erottamaan yleiset keskusteluaiheet, kuten sää, elokuvat tai ruoka. Jotta tekstiluokittelijasi tunnistaisi sääkeskustelun, voit pyytää sitä etsimään säähän liittyviä sanoja sille syötettävien tekstinäytteiden rungosta. Sinulla on luettelo avainsanoista, lauseista ja muista asiaankuuluvista malleista, joiden avulla voit erottaa aiheen. Voit esimerkiksi ohjeistaa luokittelijaa etsimään sanoja, kuten "tuuli", "sade", "aurinko", "lumi" tai "pilvi". Voit sitten antaa luokittimen katsoa syöttötekstiä läpi ja laskea kuinka monta kertaa nämä sanat esiintyvät tekstissä ja jos ne esiintyvät yleisemmin kuin elokuviin liittyvät sanat, luokittelet tekstin sääluokkaan kuuluvaksi.
Sääntöpohjaisten järjestelmien etuna on, että niiden syötteet ja lähdöt ovat ihmisten ennustettavissa ja tulkittavissa, ja niitä voidaan parantaa insinöörin manuaalisella toimenpiteellä. Sääntöihin perustuvat luokittelumenetelmät ovat kuitenkin myös hieman hauraita, ja niiden yleistäminen on usein vaikeaa, koska ne pystyvät pitämään kiinni vain ohjelmoituihin ennalta määritettyihin kuvioihin. Esimerkiksi sana "pilvi" voisi viitata kosteudelle taivas, tai se voi viitata digitaaliseen pilveen, jossa tietoja on tallennettu. Sääntöihin perustuvien järjestelmien on vaikea käsitellä näitä vivahteita ilman, että insinöörit viettävät kohtuullisen paljon aikaa yrittääkseen ennakoida ja säätää näitä vivahteita manuaalisesti.
Koneoppimisjärjestelmät
Kuten edellä mainittiin, sääntöpohjaisilla järjestelmillä on rajoituksia, koska niiden toiminnot ja säännöt on ohjelmoitava valmiiksi. Sitä vastoin koneoppimiseen perustuvat luokitusjärjestelmät toimivat soveltamalla algoritmeja, jotka analysoivat tietojoukkoja tiettyyn luokkaan liittyvien kuvioiden varalta.
Koneoppimisalgoritmeille syötetään valmiiksi merkittyjä/valmiiksi luokiteltuja ilmentymiä, jotka analysoidaan asiaankuuluvien ominaisuuksien varalta. Nämä esimerkityt tapaukset ovat harjoitustietoja.
Koneoppimisen luokitin analysoi harjoitusdataa ja oppii kuvioita, jotka liittyvät eri luokkiin. Tämän jälkeen näkymättömistä ilmentymistä poistetaan tunnisteet ja ne syötetään luokittelualgoritmiin, joka määrittää ilmentymille tunnisteen. Määritettyjä tarroja verrataan sitten alkuperäisiin tarroihin, jotta nähdään, kuinka tarkka koneoppimisluokittelu oli, ja mitataan kuinka hyvin malli oppi mitkä mallit ennustavat mitkä luokat.
Koneoppimisalgoritmit toimivat numeerista dataa analysoimalla. Tämä tarkoittaa, että koneoppimisalgoritmin käyttämiseksi tekstidatassa teksti on muutettava numeeriseen muotoon. On olemassa erilaisia menetelmiä tekstidatan koodaamiseen numeerisiksi tiedoiksi ja koneoppimismenetelmien luomiseen tämän datan ympärille. Käsittelemme alla joitakin eri tapoja esittää tekstidataa.
Sanapussi
Bag-of-sanoja on yksi yleisimmin käytetyistä lähestymistavoista tekstidatan koodaamiseen ja esittämiseen. Termi "sanapussi" tulee siitä, että otat periaatteessa kaikki asiakirjojen sanat ja laitat ne kaikki yhteen "pussiin" kiinnittämättä huomiota sanajärjestykseen tai kielioppiin, kiinnittäen huomiota vain sanojen tiheys laukussa. Tuloksena on pitkä taulukko tai vektori, joka sisältää yhden esityksen kaikista syöttöasiakirjojen sanoista. Joten jos syöttöasiakirjoissa on yhteensä 10000 10000 ainutlaatuista sanaa, piirrevektorit ovat XNUMX XNUMX sanaa pitkiä. Näin sanapussin/ominaisuusvektorin koko lasketaan.
Kun piirrevektorin koko on määritetty, jokaiselle asiakirjojen kokonaisluettelossa olevalle dokumentille osoitetaan oma vektorinsa, joka on täytetty numeroilla, jotka osoittavat, kuinka monta kertaa kyseinen sana esiintyy nykyisessä dokumentissa. Tämä tarkoittaa, että jos sana "ruoka" esiintyy kahdeksan kertaa yhdessä tekstidokumentissa, vastaavalla ominaisuusvektorilla/ominaisuustaulukolla on kahdeksan vastaavassa paikassa.
Toisin sanoen kaikki syöttöasiakirjoissa esiintyvät yksilölliset sanat kasataan yhteen pussiin ja sitten jokainen asiakirja saa samankokoisen sanavektorin, joka sitten täytetään kuinka monta kertaa eri sanat esiintyvät asiakirjassa .
Tekstitietojoukot sisältävät usein suuren määrän yksilöllisiä sanoja, mutta useimpia niistä ei käytetä kovin usein. Tästä syystä sanavektorin luomiseen käytettyjen sanojen lukumäärä rajoitetaan tyypillisesti valittuun arvoon (N), jolloin piirrevektorin ulottuvuus on Nx1.
Termitaajuus-käänteinen asiakirjataajuus (TF-IDF)
Toinen tapa esittää asiakirjaa siinä olevien sanojen perusteella on jälkiäänitys Termitaajuus-käänteinen asiakirjataajuus (TF-IDF). TF-IDF-lähestymistapa luo myös vektorin, joka edustaa dokumenttia siinä olevien sanojen perusteella, mutta toisin kuin Bag-of-words, nämä sanat ovat painotettu muulla kuin vain niiden taajuudella. TF-IDF ottaa huomioon asiakirjoissa olevien sanojen tärkeyden ja yrittää kvantifioida, kuinka relevantti sana on asiakirjan aiheen kannalta. Toisin sanoen TF-IDF analysoi relevanssia taajuuden sijaan ja piirrevektorin sanamäärät korvataan TF-IDF-pisteillä, jotka lasketaan koko tietojoukon perusteella.
TF-IDF-lähestymistapa toimii laskemalla ensin termitaajuus eli kuinka monta kertaa yksilölliset termit esiintyvät tietyssä asiakirjassa. TF-IDF huolehtii kuitenkin myös siitä, että äärimmäisen yleiset sanat, kuten "the", "or" ja "and", ovat hyvin yleisiä, mutta välittävät vain vähän tietoa asiakirjan sisällöstä. Nämä sanat on poistettava, mihin TF-IDF:n "käänteinen asiakirjataajuus" viittaa. Tämä johtuu siitä, että mitä useammissa asiakirjoissa tietty sana esiintyy, sitä vähemmän hyödyllinen sana on sen erottamisessa muista asiakirjojen luettelossa olevista asiakirjoista. Kaava, jota TF-IDF käyttää sanan tärkeyden laskemiseen, on suunniteltu säilyttämään sanat, jotka ovat yleisimpiä ja semanttisesti rikkaimpia.
TF-IDF-lähestymistavalla luodut piirrevektorit sisältävät normalisoituja arvoja, jotka summautuvat yhteen ja antavat jokaiselle sanalle painotetun arvon, joka lasketaan TF-IDF-kaavalla.
Sana-upotukset
Sanan upotukset ovat tekstin esittämismenetelmiä, joilla varmistetaan, että samankaltaisilla sanoilla on samanlaiset numeeriset esitykset.
Sanan upotukset toimivat "vektorisoimalla" sanoja, mikä tarkoittaa, että ne edustavat sanoja reaaliarvoisina vektoreina vektoriavaruudessa. Vektorit ovat ruudukossa tai matriisissa, ja niillä on suunta ja pituus (tai suuruus). Kun sanoja esitetään vektoreina, sanat muunnetaan reaaliarvoista koostuviksi vektoreiksi. Jokainen sana kartoitetaan yhteen vektoriin, ja merkitykseltään samankaltaisilla sanoilla on sama suunta ja suuruus. Tämän tyyppinen koodaus mahdollistaa koneoppimisalgoritmin oppia monimutkaisia suhteita sanojen välillä.
Eri sanoja edustavat upotukset luodaan sen mukaan, miten kyseisiä sanoja käytetään. Koska sanoilla, joita käytetään samalla tavalla, on samanlaiset vektorit, sanan upotusten luontiprosessi kääntää automaattisesti osan sanojen merkityksestä. Sanapussilähestymistapa sitä vastoin luo hauraita esityksiä, joissa eri sanoilla on erilaisia esityksiä, vaikka niitä käytettäisiin hyvin samanlaisissa yhteyksissä.
Seurauksena on, että sanan upotukset vangitsevat paremmin lauseen sanojen kontekstin.
Sanojen upotusten luomiseen käytetään erilaisia algoritmeja ja lähestymistapoja. Jotkut yleisimmistä ja luotettavimmista sanan upotusmenetelmistä ovat: upotus tasot, word2vec ja GloVe.
Tasojen upottaminen
Yksi mahdollinen tapa käyttää sanan upotuksia koneoppimis-/syväoppimisjärjestelmän rinnalla on käytä upotuskerrosta. Upotuskerrokset ovat syviä oppimiskerroksia, jotka muuntavat sanat upotuksiksi, jotka sitten syötetään muuhun syväoppimisjärjestelmään. Sanat upotukset opitaan, kun verkko harjoittelee tiettyä tekstipohjaista tehtävää.
Jotta upotustasoja voidaan käyttää, teksti on esikäsiteltävä ensin. Asiakirjan tekstin tulee olla one-hot-koodattua ja vektorin koko on määritettävä etukäteen. Yksi kuuma teksti muunnetaan sitten sanavektoreiksi ja vektorit siirretään koneoppimismalliin.
Word2Vec
Word2Vec on toinen yleinen tapa upottaa sanoja. Word2Vec käyttää tilastollisia menetelmiä sanojen muuntamiseen upotuksiksi ja se on optimoitu käytettäväksi hermoverkkopohjaisten mallien kanssa. Word2Vec on Googlen tutkijoiden kehittämä, ja se on yksi yleisimmin käytetyistä upotusmenetelmistä, koska se tuottaa luotettavasti hyödyllisiä, monipuolisia upotuksia. Word2Vec-esitykset ovat hyödyllisiä kielen semanttisten ja syntaktisten yhteisten piirteiden tunnistamisessa. Tämä tarkoittaa, että Word2Vec-esitykset vangitsevat samankaltaisten käsitteiden välisiä suhteita ja pystyvät erottamaan, että "kuningas" ja "kuningatar" ovat kuninkaallisia ja että "kuningas" tarkoittaa "miehisyyttä", kun taas Queen tarkoittaa "naisuutta".
Käsine
GloVE tai Global Vector Word Representation, perustuu Word2Vec:n käyttämiin upotusalgoritmeihin. GloVe-upotusmenetelmät yhdistävät sekä Word2Vec- että matriisifaktorointitekniikoiden, kuten piilevän semanttisen analyysin, näkökohdat. Word2Vec:n etuna on, että se voi kaapata kontekstin, mutta kompromissina se kaappaa huonosti globaaleja tekstitilastoja. Toisaalta perinteiset vektoriesitykset ovat hyviä määrittämään globaaleja tekstitilastoja, mutta ne eivät ole hyödyllisiä sanojen ja lauseiden kontekstin määrittämisessä. GloVE hyödyntää molempien parhaita lähestymistapoja ja luo sanakontekstin globaalien tekstitilastojen perusteella.
Bloggaaja ja ohjelmoija erikoisaloilla Koneen oppiminen ja Deep Learning aiheita. Daniel toivoo voivansa auttaa muita käyttämään tekoälyn voimaa yhteiskunnalliseen hyvään.
Saatat pitää
Tekoälyohjelmistosuunnittelijoiden nousu: SWE-Agent, Devin AI ja koodauksen tulevaisuus
InstructIR: Korkealaatuinen kuvan palauttaminen ihmisen ohjeiden mukaan
NLP Rise muuntajamallien kanssa | T5:n, BERT:n ja GPT:n kattava analyysi
Analoginen ja askel taaksepäin kehotus: Sukella Google DeepMindin viimeaikaisiin edistyksiin
LlamaIndex: Laajenna LLM-sovelluksiasi helposti mukautetuilla tiedoilla
Vektoritietokantojen rooli nykyaikaisissa generatiivisissa tekoälysovelluksissa