Domanda

Il mio obiettivo è quello di creare un sistema che sarà in grado di prendere qualsiasi testo casuale, estrarre frasi, rimuovere le punte puntuali e quindi, sulla frase nuda (una delle quali), per sostituire casualmente parole nn o vb taggate con il moronimo, Olonimo o Synonim e con una parola simile da un syny Wordnet.C'è un sacco di lavoro avanti, ma ho un problema all'inizio.

Per questo utilizzo i pacchetti modello e Textblob.Questo è quello che ho fatto finora ...

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()
.

Ora tutto funziona il modo in cui voglio ma quando provo ad estrarre l'i.e.e. Uponymy di questa variabile djidja si dimostra impossibile poiché è un oggetto Synset, e non posso manipolarlo comunque.

Qualsiasi idea come estrarre una parola molto riportata in list in iponimi (cioè print(djidja[2]) Visualizza Synset(u'bowler') ... Quindi come estrarre solo 'bowler' da questo)?

È stato utile?

Soluzione

Richiama che un synset è solo un elenco di parole contrassegnate come sinonimi.Dato un tramonto, puoi estrarre le parole che lo formano:

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)
.

Queste uscite:

Out[14]: [u'dog', u'domestic dog', u'Canis familiaris']
.

È inoltre possibile estrarre ipernims e iponimi:

print(s.hypernyms())
Out[16]: [Synset(u'canine'), Synset(u'domestic animal')]
print(s.hypernyms()[0].synonyms)
Out[17]: [u'canine', u'canid']
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top