Vraag Meerdere zelfstandige naamwoorden omzetten in enkelvoudige zelfstandige naamwoorden


Hoe kunnen meervoudige zelfstandige naamwoorden worden omgezet in enkelvoudige zelfstandige naamwoorden met behulp van R? Ik gebruik de tagPOS-functie die elke tekst tagt en vervolgens alle meerdere zelfstandige naamwoorden extraheert die zijn gelabeld als "NNS". Maar wat te doen in het geval ik die meervoudsnaamwoorden wil omzetten naar enkelvoudige.?


library("openNLP")
library("tm")
acq_o <- "Gulf Applied Technologies Inc said it sold its subsidiaries engaged in pipelines and terminal operations for 12.2 mln dlrs. The company said the sale is subject to certain post closing adjustments, which it did not explain. Reuter."

acq = tm_map(Corpus(DataframeSource(data.frame(acq_o))), removePunctuation)
acqTag <- tagPOS(acq)
acqTagSplit = strsplit(acqTag," ")
qq = 0
tag = 0
for (i in 1:length(acqTagSplit[[1]])){
        qq[i] <-strsplit(acqTagSplit[[1]][i],'/')
        tag[i] = qq[i][[1]][2]
}

index = 0
k = 0
for (i in 1:(length(acqTagSplit[[1]]))) { 
    if (tag[i] == "NNS"){
        k = k +1             
        index[k] = i     
    } 
}
index

10
2017-08-12 07:29


oorsprong


antwoorden:


Ik weet zeker dat je je gegevens zou kunnen doorsturen via een extern programma of je gegevens vooraf kunt verwerken.

Als je toch al tagging, het Duitse project TreeTagger doet een leuke klus van taggen en lemmatiseren op hetzelfde moment.

EDIT: tchrist had gelijk om me eraan te herinneren dat, wat je doelen ook mogen zijn, als je daadwerkelijk op zoek bent naar de enkelvoudige oppervlakvormen van je meervouds naamwoorden, het niet gaat knippen voor een zelfgemaakte oplossing.

En als je dat niet doet, lijkt Neo_Me (nogmaals, in de reacties) een pakket gevonden te hebben dat stamt uit R: het pakket sneeuwbal (RStem lijkt te zijn beëindigd. AFAICT, Snowball vervangt het.)

Dit is natuurlijk alleen maar een implementatie of een wrapper rond de stemmer van Porter. Gebruik op eigen risico, het gaat spullen zoals vrouwen in wif of zoiets.

Het kwam net bij me op, dat R heeft CRAN. Op zoek naar "lemma" daar maakte ik me bewust van het Java-afhankelijke pakket wordnet. Het lijkt een te hebben getLemma functie. Het hele pakket is waarschijnlijk overkill voor je, maar kan je toch ergens brengen als je niets beters kunt vinden.


6
2017-08-12 09:02