У меня есть текстовый столбец в пандах, и у меня есть список, содержащий несколько слов. Мне нужно сопоставить текст в каждой строке со словом в списке и сохранить их - PullRequest
0 голосов
/ 16 мая 2019

У меня есть столбец train['final_input_text'], содержащий текстовые значения. У меня есть набор слов в списке, с которым мне нужно соответствовать train['final_input_text'].values, если совпадает, оставить слова в train['final_input_text'].

train['final_input_text'].values[1] = 'students would rather school home sometimes high poverty'

Я пытался использовать циклы, но не смог прийти

text_df=train['final_input_text'].values

Мне нужно сохранить только те слова в train[final_input_text], которые соответствуют словам в моем списке, в котором ~ 9k слов.

Ответы [ 3 ]

1 голос
/ 16 мая 2019

Это создаст фрейм данных только со словами из списка

train = train[train['final_input_text'].isin(words_list)]
0 голосов
/ 16 мая 2019

Вы можете использовать функцию split, чтобы иметь возможность сравнивать ваш текст с конкретными словами. Затем используйте функцию объединения, чтобы объединить найденные вами слова в одну строку.

Вот рабочий пример:

df_text = pd.DataFrame({'final_input_text':['hello my name is Bob','I like the name Bob']})

In [1] : print(df_text)
Out[1] : final_input_text
0   hello my name is Bob
1   I like the name Bob

words_to_match = ['name', 'Bob', 'hello', 'world']

for index, row in df_text.iterrows():
    words_to_keep = []
    for word in row[0].split(' '):
        if word in words_to_match :
            words_to_keep.append(word + ' ')
    df_text.loc[index, 'final_input_text']= ''.join(words_to_keep)

In [2] : print(df_text)
Out[2] :    final_input_text
0   hello name Bob
1   name Bob
0 голосов
/ 16 мая 2019

если слова в списке - это униграмма, вы следуете этому методу:

 list_words = ['word1','word2','word3','word4']
 for x in range(len(train)):
     for w in list_words:
         if w in train['final_input_text'][x]:
            train['word in final_input'][x] = w
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...