Pregunta

Mi objetivo es crear un sistema que será capaz de tomar cualquier texto al azar, el extracto de las sentencias, quitar puntuaciones, y luego, en el piso de la pena (uno de ellos), para reemplazar al azar NN o VB etiquetado palabras con sus meronym, holonym o sinónimo así como con una palabra similar a la de un WordNet synset.Hay un montón de trabajo por delante, pero tengo un problema al principio.

Para esto yo uso el patrón y TextBlob paquetes.Esto es lo que he hecho hasta ahora...

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

Ahora todo funciona de la manera que yo quiero, pero cuando trato de extraer el decirhyponym de este djidja variable resulta ser imposible, ya que es un Synset objeto, y no puede manipular de todos modos.

Alguna idea de cómo extraer la misma palabra que aparece en hyponyms lista (es decir, print(djidja[2]) muestra Synset(u'bowler')...entonces, ¿cómo extraer sólo 'bowler' de esta)?

¿Fue útil?

Solución

Recuerde que un sintonizador es solo una lista de palabras marcadas como sinónimos.Dada una puesta de sol, puedes extraer las palabras que lo forman:

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)

ESTA SALIDAS:

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

También puede extraer hipernims e hipónimos:

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top