Я новичок в НЛП и пытаюсь освоиться с вещами в этой области. Я тестирую два примера кода, как показано ниже.
# Starting with the CountVectorizer/TfidfTransformer approach...
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
cvec = CountVectorizer(stop_words='english', min_df=1, max_df=.5, ngram_range=(1,2))
cvec
# Calculate all the n-grams found in all documents
from itertools import islice
cvec.fit(body_list)
Последняя строка кода выдает ошибку, и появляется сообщение об ошибке:
AttributeError: 'float' object has no attribute 'lower'
Я также тестирую этот код пример:
from sklearn.feature_extraction.text import TfidfVectorizer
X = body_list
y = df['helpful_count'].tolist()
cv = TfidfVectorizer()
df_xcv = cv.fit_transform(X)
Опять же, последняя строка кода выдает ту же ошибку; сообщение об ошибке:
AttributeError: 'float' object has no attribute 'lower'
В обоих примерах кода я передаю список в переменную X; список отсюда.
body_list = df['body'].tolist()
Итак, «тело» - это поле в информационном фрейме, содержащее тысячи строк комментариев от розничных покупателей, и выглядит это примерно так:
'perfect product and price thank you',
'way to dark for me as i am fair this may work for darker skin tones',
'i love la rocheposay this truly balances out my skin well',
'my shoes started to tear on the outside of my mid foot be careful with them',
'perfect style and fit',
...]