Я извлекаю собственные имена из столбца, содержащего строковые данные. Я хочу переместить извлеченные существительные в новый столбец в виде списка (или, альтернативно, как одно существительное на дополнительный столбец). Я извлекаю произвольное (а иногда и большое) число существительных в каждой записи.
Я завершил извлечение и переместил интересующие меня значения в список, но я не могу понять, как добавить их в виде столбца в тот случай, когда я извлек их из-за разница в длине между списком, который я извлек, и тем, что он должен соответствовать одной строке.
from nltk.tokenize import PunktSentenceTokenizer
data = []
norm_data['words'] = []
for sent in norm_data['gtd_summary']:
sentences = nltk.sent_tokenize(sent)
data = data + nltk.pos_tag(nltk.word_tokenize(sent))
for word in data:
if 'NNP' in word[1]:
nouns = list(word)[0]
norm_data['words'].append(nouns)
Текущие данные
X Y
1 Joe Montana walks over to the yard
2 Steve Smith joins the Navy
3 Anne Johnson wants to go to a club
4 Billy is interested in Sally
Что я хочу
X Y Z
1 Joe Montana walks over to the yard [Joe, Montana]
2 Steve Smith joins the Navy [Steve, Smith, Navy]
3 Anne Johnson wants to go to a club [Anne, Johnson]
4 Billy is interested in Sally [Billy, Sally]
ИЛИ Это тоже нормально
X Y Z L M
1 Joe Montana walks over to the yard Joe Montana NA
2 Steve Smith joins the Navy Steve Smith Navy
3 Anne Johnson wants to go to a club Anne Johnson NA
4 Billy is interested in Sally Billy Sally NA