Как извлечь все прилагательные из строк текста в кадре данных панд? - PullRequest
1 голос
/ 11 июля 2019

Я загружаю CSV в кадр данных pandas. Один из столбцов в кадре данных - это «отзывы», которые содержат строки текста. Мне нужно идентифицировать все прилагательные в этом столбце во всех строках кадра данных, а затем создать новый столбец «прилагательные», который содержит список всех прилагательных из этого обзора.

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

import pandas as pd
from textblob import TextBlob

df=pd.read_csv('./data.csv')

def pos_tag(text):
    try:
        return TextBlob(text).tags
    except:
        return None

df['pos'] = df['reviews'].apply(pos_tag)

df.to_csv('dataadj.csv', index=False)

1 Ответ

1 голос
/ 11 июля 2019

Ты почти у цели. TextBlob(text).tags возвращает список кортежей (слово, тег). Вам просто нужно отфильтровать по тегу (JJ в вашем случае).

Вы можете сделать что-то вроде этого:

def get_adjectives(text):
    blob = TextBlob(text)
    return [ word for (word,tag) in blob.tags if tag == "JJ"]

df['adjectives'] = df['reviews'].apply(get_adjectives)

РЕДАКТИРОВАТЬ: Чтобы также захватить прилагательные в сравнительной / превосходной форме (JJR / JJS), замена tag == "JJ" на tag.startswith("JJ") должна работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...