Да это, безусловно, возможно, и я лично предпочел бы Python , чтобы сделать работу.
Я написал код, он не самый лучший или самый эффективный код, но он, безусловно, сделает работу , но в моем коде есть загвоздка. Это будет работать только в том случае, если последовательность и шаблон вашего предложения совпадают. Шаблон должен быть точно таким же, как вы указали в примере .
Если вы хотите, чтобы код работал для нескольких предложений, небольшое изменение в коде с помощью цикла может сделать эту работу.
import pandas as pd
my_sent = "My name is James Olson. I am 21 years old. I am a doctor. I live in Canterville, Bacon Street, London."
my_words = my_sent.split()
my_stopwords = ['My', 'name', 'is', 'I', 'am', 'years', 'old.', 'I', 'am', 'a', 'I', 'live', 'in',]
cleaned_stopwords = []
useful_words = []
for temp in my_stopwords:
cleaned_stopwords.append(temp.lower().strip())
for word in my_words:
if word.lower().strip() not in cleaned_stopwords:
useful_words.append(word.title().strip(".").strip(","))
name = useful_words[0] + " " + useful_words[1]
street = useful_words[5] + " " + useful_words[6]
useful_words.pop(0)
useful_words.pop(0)
useful_words.insert(0, name)
useful_words.pop(4)
useful_words.pop(4)
useful_words.insert(4, street)
all_columns = ["Name", "Age", "Profession", "Area Name", "Street Name", "Area"]
my_df = pd.DataFrame([useful_words], columns = all_columns)
Выход:
Name Age Profession Area Name Street Name Area
0 James Olson 21 Doctor Canterville Bacon Street London