Хобрук: Ваш путь к мастерству в программировании

извлечь pos_tag_sents из серии панд

следуя совету из темы Как применить pos_tag_sents() для эффективного кадра данных pandas Я запускаю код, чтобы определить разные позиции для текста в одной из моих переменных.

Теперь, когда мне удалось создать интересующий столбец — sub['POS'] — как мне извлечь соответствующую информацию — все NN — и создать столбец для каждого из них?

print(sub['POS'])

5     [(e-mail, JJ), (new, JJ), (delhi, NN), ((, (),...
4     [(bangladesh, JJ), (garment, NN), (unions, NNS...
41    [(listen, VB), (blaze, NN), (wrecks, NNS), (te...
10    [(11:49, CD), (am, VBP), (,, ,), (september, V...
17    [(listen, JJ), (two, CD), (events, NNS), (plan...

в качестве вывода мне нужен новый столбец (здесь как «NN»), который содержит все NN для каждой строки.

df = pd.DataFrame(["delhi", 
                   "garment" , 
                   "blaze", 
                   NaN], columns=['NN'])
18.09.2019

  • Не могли бы вы предоставить образец ожидаемого результата, пожалуйста? 18.09.2019
  • Я добавил, как я хотел бы получить вывод - новый столбец, где каждая строка содержит все NN серии sub['POS']. 18.09.2019

Ответы:


1

Итак, я предполагаю, что у вас есть один столбец в кадре данных, где каждая строка представляет собой список кортежей. Пожалуйста, поправьте меня, если я ошибаюсь. Из этого столбца вы хотите создать новые столбцы для каждого «тега». Как вы думаете, следование – это то, что приведет к тому, что вы хотите сделать?

import pandas as pd
import numpy as np

df = pd.DataFrame({"line":[[('e-mail', 'JJ'), ('new', 'JJ'), ('delhi', 'NN')]]})

def extract_pos(line,pos):
    return [word[0] for word in line if word[1] == pos]

df['NN'] = [extract_pos(line,'NN') for line in df['line']]
df['JJ'] = [extract_pos(line,'JJ') for line in df['line']]

Таким образом, вы можете добавить столько столбцов, сколько хотите, и результат может выглядеть примерно так, как показано ниже.

введите здесь описание изображения

Надеюсь, это поможет, Ура

18.09.2019
  • Отлично :) удачного кодирования! 18.09.2019
  • Новые материалы

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..