Вопрос

Моя цель — создать систему, которая сможет брать любой случайный текст, извлекать предложения, удалять знаки препинания, а затем в простом предложении (одном из них) случайным образом заменять слова с тегами NN или VB их меронимом, холонимом или синоним, а также аналогичное слово из синсета 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 переменной, это оказывается невозможным, поскольку это Synset объект, и я все равно не могу им манипулировать.

Любая идея, как извлечь то самое слово, которое указано в списке гипонимов (т. print(djidja[2]) дисплеи Synset(u'bowler')...так как извлечь только 'bowler' из этого)?

Это было полезно?

Решение

Напомним, что синсет — это просто список слов, помеченных как синонимы.Учитывая закат, вы можете извлечь слова, которые его образуют:

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)

Это выводит:

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

Вы также можете извлечь гипернимы и гипонимы:

print(s.hypernyms())
Out[16]: [Synset(u'canine'), Synset(u'domestic animal')]
print(s.hypernyms()[0].synonyms)
Out[17]: [u'canine', u'canid']
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top