Как разделить имя столбца и найти словарное значение с помощью wordnet?

#python #nltk

#python #nltk

Вопрос:

У меня есть следующие данные, с помощью которых я пытаюсь получить словарное определение, но это работает, только если это одно слово. Как я могу сделать так, чтобы оно работало с несколькими словами?

Код:

 from nltk.stem import WordNetLemmatizer
from nltk.corpus import wordnet

columns = ['Sector',
 'Community Name',
 'Date',
 'Community Center Point']

tmp = []

for x in columns:
    syns = (wordnet.synsets(x))
    tmp.append(syns[0].definition() if len(syns) > 0 else '')
  

Вывод:

 pd.DataFrame(tmp).T

                        0    1                               2      3
a plane figure bounded by       the specified day of the month  
  

столбцы 1 и 3 пусты, потому что ‘Название сообщества’ и ‘Точка центра сообщества’ содержат более одного слова.

Желаемый результат:

                           0                                             1                                         2                                                                   3
Sector: [a plane figure...]   Community: [definition], Name: [definition]    Date: [the specified day of the month]  Community: [definition], Center: [definition], Point: [definition]
  

Ответ №1:

 from nltk.corpus import wordnet

columns = ['Sector', 'Community Name', 'Date', 'Community Center Point']

col_defs = []
for item in columns:
    tmp = []
    for word in item.split():
        syns = (wordnet.synsets(word))
        tmp.append(word ': ' syns[0].definition() if len(syns) > 0 else None)
    col_defs.append(', '.join(tmp))

for x in col_defs:
    print(x)
  

Вывод:

 Sector: a plane figure bounded by two radii and the included arc of a circle
Community: a group of people living in a particular local area, Name: a language unit by which a person or thing is known
Date: the specified day of the month
Community: a group of people living in a particular local area, Center: an area that is approximately central within some larger region, Point: a geometric element that has position but no extension