Получить TypeError при использовании TfidfVectorizer в python - PullRequest
1 голос
/ 24 мая 2019

Я новичок в Python, и мне нужна ваша помощь.

Я работаю с NLP и хочу классифицировать поле, которое является строкой.

Я прочиталнабор данных

data = pd.read_csv("dataset.csv",sep=';',encoding='latin-1',error_bad_lines=False)

токенизировать поле

data['campo']= data['campo'].str.split()

вывод:

1- [Su, inexperto, personal] 2- [Atención, al, cliente]

, когда я проверяю учебники, которые существуют в Интернете, для большинства, когдаtokeniza возвращает разделенные слова с апострофом.

enter image description here

проблема в том, что когда я хочу векторизовать (TfidfVectorizer), я получаю сообщение об ошибке и думаю,моя проблема здесь.

Вы можете мне помочь?Почему у меня нет токенов с апострофом?

После выполнения этого я добавляю возможность векторизовать поле:

Tfidf_vect = TfidfVectorizer (max_features = 5000)
Tfidf_vect.fit(data ['field'])

Отсюда выкидываю ошибку:

AttributeError: у объекта 'list' нет атрибута 'lower'

Я думал, что приду за предметом более низкого уровня, поэтому я добавил:

Tfidf_vect = TfidfVectorizer (lowercase = False, max_features = 5000)  

Tfidf_vect.fit (data ['field'])

и оттуда он стреляет в меня:

TypeError: ожидаемая строка или байтовоподобный объект

Знаете ли вы, в чем проблема?

1 Ответ

0 голосов
/ 24 мая 2019

Не токенизируйте свой текст перед подачей в tfidfVectorizer(), что означает, что вы должны удалить следующую строку в вашем коде.

data['campo']= data['campo'].str.split()

TfidfVectorizer внутренне выполняет токенизацию.Попробуйте следующие строки кода напрямую!

Tfidf_vect = TfidfVectorizer (max_features = 5000)
Tfidf_vect.fit(data ['campo'])
...