Python模式packatg中synsets的替换

2024-07-05 10:18:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目标是创建一个系统,这个系统将能够获取任意文本、提取句子、删除标点符号,然后,在裸句(其中一个)上,将NN或VB标记的单词随机替换为meronym、holonym或synonim以及WordNet语法集中的类似单词。前面有很多工作要做,但我一开始就有问题。在

为此,我使用pattern和TextBlob包。这就是我目前所做的。。。在

from pattern.web import URL, plaintext
from pattern.text import tokenize
from pattern.text.en import wordnet
from textblob import TextBlob
import string

s = URL('http://www.fangraphs.com/blogs/the-fringe-five-baseballs-most-compelling-fringe-prospects-35/#more-157570').download()
s = plaintext(s, keep=[])
secam = (tokenize(s, punctuation=""))
simica = secam[15].strip(string.punctuation)
simica = simica.replace(",", "")

simica = TextBlob(simica)
simicaTg = simica.words

synsimica = wordnet.synsets(simicaTg[3])[0]
djidja = synsimica.hyponyms()

现在一切都按我想要的方式工作,但是当我试图从这个djidja变量中提取I.e.下义词时,它被证明是不可能的,因为它是一个Synset对象,而且我无论如何也不能操作它。在

你知道如何提取下义词列表中的单词吗(例如,print(djidja[2])显示{}……那么如何从中只提取{})?在


Tags: textfromimporturlstring系统单词wordnet
1条回答
网友
1楼 · 发布于 2024-07-05 10:18:45

回想一下,synset只是标记为同义词的单词列表。给定一个日落,你可以提取出构成它的单词:

from pattern.text.en import wordnet
s = wordnet.synsets('dog')[0] # a word can belong to many synsets, let's just use one for the sake of argument
print(s.synonyms)

该输出:

^{pr2}$

您还可以提取hypernims和hyperyms:

^{3}$

相关问题 更多 >