Mikä on avainsanan poiminta?
Avainsanojen poiminta poimii automaattisesti käytetyimmät ja tärkeimmät sanat ja ilmaisut tekstistä käyttäen tekstianalyysitekniikkaa. Se auttaa tiivistämään tekstien sisällön ja tunnistamaan tärkeimmät keskustelunaiheet, mikä on hyödyllistä markkinatutkimuksessa , tunneanalyysissä ja muunlaisessa tietojen analysoinnissa. Tämä tekniikka hyödyntää lauseiden upotuksia ja voi analysoida suuria tietomääriä reaaliajassa.
Koneoppiminen tekoälyn ja luonnollisen kielen käsittelyn (NLP) avulla (tietotekniikan ala) pilkkoo ihmisen kielen niin, että koneet voivat ymmärtää ja analysoida sitä. Avainsanojen poiminta automatisoi työnkulkuja, kuten saapuvien kyselyvastausten merkitsemistä tai vastaamista kiireellisiin asiakaskyselyihin. Tekniikassa käytetään kielellistä ja semanttista tietoa teksteistä ja niiden sisältämistä sanoista. On olemassa erilaisia koneoppimisalgoritmeja ja -tekniikoita, joiden avulla tekstistä voidaan poimia olennaisimmat avainsanat.
Miksi avainsanojen poiminta on tärkeää?
Avainsanojen ja avainsanalausekkeiden poiminta on tärkeää useista syistä:
- Hakukoneoptimointi (SEO) : Avainsanojen louhinta auttaa tunnistamaan asiakirjan tärkeimmät sanat ja lausekkeet, joita voidaan käyttää verkkosivuston sisällön optimointiin hakukoneita varten.
- Tekstin tiivistäminen: Tunnistamalla tärkeimmät sanat ja lauseet, jotka edustavat tekstin pääteemaa.
- Tekstin luokittelu: Avainsanojen louhintaa voidaan käyttää tekstidokumenttien luokitteluun eri luokkiin niiden sisältämien avainsanojen perusteella. Tämä on hyödyllistä esimerkiksi tunneanalyysin kaltaisissa sovelluksissa.
- Tiedonhaku: Avainsanojen louhinta: Avainsanojen louhintaa voidaan käyttää tiedonhakujärjestelmien tarkkuuden parantamiseen tunnistamalla olennaiset avainsanat, jotka vastaavat käyttäjän hakukyselyä.
Miten tehdä avainsanan poiminta R:ssä?
Seuraavassa on joitakin avainsanojen louhintatekniikoita ja niiden käyttötapauksia:
- Etsi avainsanoja tekemällä puheosien tunnistaminen substantiivien tunnistamiseksi.
- Etsi avainsanoja kollokaatioiden ja yhteisesiintymien perusteella.
- Etsi avainsanoja Textrank-algoritmin perusteella
- Etsi avainsanoja RAKE:n (nopea automaattinen avainsanojen poiminta) perusteella.
- Etsi avainsanoja riippuvuusanalyysin tulosten perusteella (tekstin aiheen selvittäminen).
Substantiivien poimiminen
Helppo tapa löytää avainsanoja on tarkastella substantiiveja. Koska jokaisella termillä on puheen osat -tunniste, jos olet kommentoinut tekstiä udpipe-paketilla:
Koodi:
stats <- subset(x, upos %in% "NOUN")
stats <- txt_freq(x = stats$lemma)
library(lattice)
stats$key <- factor(stats$key, levels = rev(stats$key))
barchart(key ~ freq, data = head(stats, 30), col = "cadetblue", main = "Most occurring nouns", xlab = "Freq")
Kollokaatio ja yhteisesiintymät
Hanki monisanaisia ilmauksia tarkastelemalla joko kollokaatioita (toisiaan seuraavia sanoja), sanojen yhteisesiintymiä kussakin lauseessa tai sellaisten sanojen yhteisesiintymiä, jotka ovat lähellä toisiaan.
Koodi:
Collocation (words following one another)
stats <- keywords_collocation(x = x,
term = "token", group = c("doc_id", "paragraph_id", "sentence_id"),
ngram_max = 4)
Co-occurrences: How frequent do words occur in the same sentence, in this case only nouns or adjectives
stats <- cooccurrence(x = subset(x, upos %in% c("NOUN", "ADJ")),
term = "lemma", group = c("doc_id", "paragraph_id", "sentence_id"))
## Co-occurrences: How frequent do words follow one another
stats <- cooccurrence(x = x$lemma,
relevant = x$upos %in% c("NOUN", "ADJ"))
## Co-occurrences: How frequent do words follow one another even if we would skip 2 words in between
stats <- cooccurrence(x = x$lemma,
relevant = x$upos %in% c("NOUN", "ADJ"), skipgram = 2)
Textrank (sanaverkko järjestettynä Google Pagerankin mukaan)
Textrank on toinen avainsanojen uuttamismenetelmä. Textrank R-paketti toteuttaa Textrank-algoritmin. Textrank-algoritmi mahdollistaa tekstin tiivistämisen ja avainsanojen poimimisen. Sanaverkon rakentamiseksi algoritmi tarkistaa, seuraavatko sanat toisiaan. Google Pagerank -algoritmi poimii relevantteja sanoja. Toisiaan seuraavat merkitykselliset sanat yhdistyvät avainsanoiksi. TextRank ei perustu alkuperäiseen tekstiin, sillä se on graafipohjainen lähestymistapa.
Koodi:
stats <- textrank_keywords(x$lemma, relevant = x$upos %in% c("NOUN", "ADJ"), ngram_max = 8, sep = " ")
stats <- subset(stats$keywords, ngram > 1 & freq >= 5) library(wordcloud) wordcloud(words = stats$keyword, freq = stats$freq)
Nopea automaattinen avainsanojen poiminta: RAKE
RAKE on seuraava perusalgoritmi, joka on lyhenne sanoista Rapid Automatic Keyword Extraction. RAKE on toimialueesta riippumaton avainsanojen poiminta-algoritmi luonnollisen kielen käsittelyssä.
-
Pistemäärän laskeminen jokaiselle sanalle, joka on osa ehdolla olevaa avainsanaa, tapahtuu seuraavasti.
- Algoritmi tarkastelee avainsanaehdokkaiden sanojen joukosta, kuinka monta kertaa kukin sana esiintyy ja kuinka monta kertaa se esiintyy yhdessä muiden sanojen kanssa.
- kukin sana saa pistemäärän, joka on sanan asteen (kuinka monta kertaa se esiintyy yhdessä muiden sanojen kanssa) ja sanan esiintymistiheyden suhde.
- Koko hakusanaehdokkaan RAKE-pisteet lasketaan laskemalla yhteen kaikkien hakusanaehdokkaan määrittelevien sanojen pisteet.
Koodi:
stats <- keywords_rake(x = x, term = "token", group = c("doc_id", "paragraph_id", "sentence_id"), relevant = x$upos %in% c("NOUN", "ADJ"), ngram_max = 4)
head(subset(stats, freq > 3))
Käytä riippuvuusanalyysin tulosta saadaksesi nimellisen subjektin ja sen adjektiivin.
Kun suoritat annotaation udpipe-ohjelmalla, dep_rel-kenttä osoittaa, miten sanat liittyvät toisiinsa. Token liittyy vanhempaan token_id :n ja head_token_id: n avulla. Dep_rel-kenttä osoittaa, miten sanat liittyvät toisiinsa. Suhteiden tyyppi on osoitteessa http://universaldependencies.org/u/dep/index.html.
Koodi:
stats <- merge(x, x, by.x = c("doc_id", "paragraph_id", "sentence_id", "head_token_id"), by.y = c("doc_id", "paragraph_id", "sentence_id", "token_id"), all.x = TRUE, all.y = FALSE, suffixes = c("", "_parent"), sort = FALSE)
stats <- subset(stats, dep_rel %in% "nsubj" & upos %in% c("NOUN") & upos_parent %in% c("ADJ"))
stats$term <- paste(stats$lemma_parent, stats$lemma, sep = " ")
stats <- txt_freq(stats$term)
library(wordcloud)
wordcloud(words = stats$key, freq = stats$freq, min.freq = 3, max.words = 100, random.order = FALSE, colors = brewer.pal(6, "Dark2"))
Mitä on tekstinlouhinta?
Tekstinlouhinta R:llä tarkoittaa prosessia, jossa analysoidaan ja poimitaan oivalluksia tekstidatasta käyttäen R-ohjelmointikieltä ja siihen liittyviä kirjastoja ja paketteja. Tekstinlouhintaan kuuluu useita vaiheita, kuten tietojen puhdistus ja esikäsittely, ominaisuuksien louhinta, tilastollinen mallintaminen ja visualisointi.
tm
-paketti tarjoaa funktioita tekstidatan lukemiseen, datan puhdistamiseen ja esikäsittelyyn sekä dokumentti-termi-matriisien luomiseen, joita käytetään yleisesti tekstidatan analysoinnissa. Paketti
tidytext
tarjoaa työkaluja, joilla tekstidatan voi muuntaa siistiksi datakehykseksi.
Tekstinlouhinnan yleisiä tehtäviä ovat esimerkiksi tunneanalyysi, aihepiirien mallintaminen, asiakirjojen klusterointi ja tekstiluokittelu. Näissä tehtävissä sovelletaan tilastollisia ja koneoppimisen tekniikoita tekstidatan kuvioiden ja suhteiden tunnistamiseen.
Avainsanojen poiminta-apit ovat ohjelmistorajapintoja, joiden avulla kehittäjät voivat poimia tekstistä avainsanoja ja avainsanoja käyttämällä valmiita algoritmeja ja koneoppimismalleja. Nämä sovellusliittymät tarjoavat helppokäyttöisen ja skaalautuvan ratkaisun avainsanojen poimintaprosessin automatisointiin ilman, että kehittäjien tarvitsee rakentaa ja kouluttaa omia mallejaan.
R on avoimen lähdekoodin ohjelmointikieli ja ohjelmistoympäristö tilastolaskentaa, data-analyysiä ja grafiikkaa varten. R-ohjelmaa käytetään laajalti yliopistoissa, tutkimuksessa ja teollisuudessa esimerkiksi tilastolliseen mallintamiseen, tietojen visualisointiin, koneoppimiseen ja tiedonlouhintaan. Sillä on rajapinnat muihin ohjelmointikieliin, kuten Pythoniin ja C++:aan . Löydät yksityiskohtaisempia tietoja online-oppaista GitHubista.