我使用wordnet库,我想获得令牌的wordnet索引以供将来使用.
library(wordnet)
filter <- getTermFilter("ExactMatchFilter", "proud", TRUE)
terms <- getIndexTerms("ADJECTIVE", 1, filter)
terms
[1] "Java-Object{Lemma: proud POS: adj Tag-Sense-Count: 2\nList of Synsets (2)\n #1: 1817423\n #2: 1231908\nList of Pointers (4)\n #1: ! (Antonym)\n #2: & (Similar to)\n #3: ^ (Also see)\n #4: = (Attribute)}"
Run Code Online (Sandbox Code Playgroud)
terms是一个带有一些方法的Java-Object:
names(terms[[1]])
[1] "getLemma()" "getSynsets()" "getPointers()" "getPartOfSpeech()" "getSynsetCount()" "getTagSenseCount()" "getPointerCount()"
[8] "toString()" "compareTo(" "compareTo(" "wait(" "wait(" "wait()" "equals("
[15] "hashCode()" "getClass()" "notify()" "notifyAll()"
Run Code Online (Sandbox Code Playgroud)
但似乎并非所有工作都有效
getLemma(terms[[1]])
[1] "proud"
toString(terms[[1]])
Erreur dans as.character.default(<S4 object of class "jobjRef">) :
pas de méthode pour convertir automatiquement cette classe S4 en vecteur
Run Code Online (Sandbox Code Playgroud)
我想从条件[[1]]中提取代码,这里是"#1:1817423",我认为我可以使用substring或regex但到目前为止我只是无法转换字符串中的对象以便我可以使用它.任何的想法 ?
str(terms[[1]])
Formal class 'jobjRef' [package "rJava"] with 2 slots
..@ jobj :<externalptr>
..@ jclass: chr "java/lang/Object"
unclass(terms[[1]])
<S4 Type Object>
attr(,"jobj")
<pointer: 0x000000000cb81050>
attr(,"jclass")
[1] "java/lang/Object"
Run Code Online (Sandbox Code Playgroud)
看起来这个jobjRef类的行为类似于(或实际上可能是)一个引用类,它使用稍微不同的面向对象系统.在这个世界中,对象的成员/元素/槽是可以通过object$method()在对象上运行相应方法来调用 的方法,例如terms[[1]]$toString()(但是,我不知道/不能解释为什么getLemma(terms[[1]])有效而不能解释toString(terms[[1]]). ..)
这是基本的想法,但我不确定我是否正确了解所有细节.如果有人想在这里或在另一个答案中纠正我的术语,那对我来说没问题......
| 归档时间: |
|
| 查看次数: |
497 次 |
| 最近记录: |