Question

Mon objectif est de créer un système capable de prendre n'importe quel texte aléatoire, d'extraire des phrases, de supprimer les ponctuations, puis, sur la phrase nue (l'une d'entre elles), de remplacer aléatoirement les mots étiquetés NN ou VB par leur méronyme, holonyme ou synonyme ainsi qu'avec un mot similaire provenant d'un synset WordNet.Il y a beaucoup de travail à faire, mais j'ai un problème au tout début.

Pour cela, j'utilise les packages pattern et TextBlob.C'est ce que j'ai fait jusqu'à présent...

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

Maintenant, tout fonctionne comme je le souhaite, mais lorsque j'essaie d'extraire le c'est-à-direhyponyme de ceci djidja variable, cela s'avère impossible puisqu'il s'agit d'une Synset objet, et je ne peux de toute façon pas le manipuler.

Toute idée sur la façon d'extraire le mot même qui est rapporté dans la liste d'hyponymes (c'est-à-dire print(djidja[2]) affiche Synset(u'bowler')... alors comment extraire uniquement 'bowler' de cela) ?

Était-ce utile?

La solution

Rappelons qu'un synset n'est qu'une liste de mots marqués comme synonymes.Étant donné un coucher de soleil, vous pouvez extraire les mots qui le forment :

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)

Cela produit :

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

Vous pouvez également extraire des hyperonymes et des hyponymes :

print(s.hypernyms())
Out[16]: [Synset(u'canine'), Synset(u'domestic animal')]
print(s.hypernyms()[0].synonyms)
Out[17]: [u'canine', u'canid']
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top