У меня есть файл CSV, какNLTK: Как создать корпус из CSV-файла
col1 col2 col3
some text someID some value
some text someID some value
в каждой строке, col1 соответствует тексту всего документа. Я хотел бы создать корпус из этого csv. моя цель - использовать TfidfVectorizer sklearn для вычисления подобия документа и извлечения ключевых слов. Так считают
tfidf = TfidfVectorizer(tokenizer=tokenize, stop_words='english')
tfs = tfidf.fit_transform(<my corpus here>)
так, то я могу использовать
str = 'here is some text from a new document'
response = tfidf.transform([str])
feature_names = tfidf.get_feature_names()
for col in response.nonzero()[1]:
print feature_names[col], ' - ', response[0, col]
как я создать корпус с помощью NLTK? какой форме/структуре данных должен быть корпус, чтобы он мог быть передан функции преобразования?
спасибо, но этот метод не является точным. docs все еще является объектом серии, а не списком строк. поэтому my fit_transform не работает. любая идея о том, как преобразовать столбец dataframe в список значений? – AbtPst
нашел его. это должно быть docs = data ['col1']. tolist() :) если вы обновите свой ответ, я соглашусь – AbtPst
. Хороший вызов, похоже, что передача 2d-массива (dataframe) в 'fit_transform' не работает. Тем не менее, массив 1d должен работать, поэтому достаточно просто захватить серию с 'data ['col1']' (нет необходимости конвертировать 'Series' в' list'). Обновлено. – hume