2013-02-19 71 views
1

我想使用wordnet lemmatizer到lemmatize詞語aWORDNET Lemmatizer對於R

> a<-c("He saw a see-saw on a sea shore", "she is feeling cold") 
> a 
[1] "He saw a see-saw on a sea shore" "she is feeling cold" 

我轉換a成語料庫和做預處理步驟(例如停用詞去除,詞形還原等)

> a <- Corpus(VectorSource(a)) 

我想做的詞形歸併在下面的方式,

> filter <- getTermFilter("ExactMatchFilter", a, TRUE) 
> terms <- getIndexTerms("NOUN", 1, filter) 
> sapply(terms, getLemma) 

但我得到這個錯誤

> filter <- getTermFilter("ExactMatchFilter", a, TRUE) 
Error in .jnew(paste("com.nexagis.jawbone.filter", type, sep = "."), word, : 
    java.lang.NoSuchMethodError: <init> 

我的想法是lemmatize整個語料,而不是一個字,怎麼能實現呢?

+0

不完全確信,使用R​​與共發現或任何NLP設施進行交互,但我希望在這裏做的是使用RPY到完成R業務並將NLTK用於WordNet /詞形化的東西。授予此作品,除非你的代碼由於某種原因必須在R中。 – dmn 2013-02-25 20:27:54

回答

4

把你在一個循環中的代碼,你可以嘗試這樣的事:

 lapply(a,function(x){ 
      x.filter <- getTermFilter("ExactMatchFilter", x, TRUE)) 
      terms <- getIndexTerms("NOUN", 1, x.filter) 
      sapply(terms, getLemma) 
     }) 
+0

出於某種原因,OP代碼的這段代碼給了我兩個空列表元素的列表。我錯過了什麼? – expert 2017-05-05 15:32:49