Преобразовать список строк в список наборов синхронизации

#python #nltk #wordnet #synset

#python #nltk #wordnet #набор синхронизации

Вопрос:

Преобразовать список строк в список объектов типа synset.

Я пытался разделить и добавить, но не смог ввести приведение к типу sysnet.

     inp="[Synset<'history.n.02'>,Synset<'long.n.02'>]"
  

Я должен получить вывод в виде

     [Synset<'history.n.02'>,Synset<'long.n.02'>]
  

таким образом, чтобы выводом должен быть список наборов синхронизации.
Для понимания наборов синхронизации

Ответ №1:

Вы можете использовать wn.synset()

 inp="[Synset<'history.n.02'>,Synset<'long.n.02'>]"
inp=inp[1:-1]
for i in inp.split(','):
    val= i[8:-2]
    print wn.synset(val)
  

Ответ №2:

Как насчет

 from nltk.corpus import wordnet as wn

words = ['dog','cat']
wn_words = [wn.synsets(word) for word in words]
  

Комментарии:

1. На самом деле, я хочу избегать этого вычисления в sysnet снова и снова. Так что это будет неуместно

2. @Dpseudo Coders Вычисление набора синхронизации выполняется один раз для каждого слова в words

3. Да, но есть ли способ быстрее преобразовать строку в объект synset

4. если вы можете предложить способ преобразовать «Synset<‘history.n.02’>» в объект synset

5. Не уверен, что понимаю. Каков тип элементов в inp списке? Какой желаемый тип?