#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