Это может помочь.
У меня есть коллекция отдельных текстовых файлов, которые я хочу использовать и преобразовать в TfidfVectorizer. Это будет проходить через процесс приема файлов и использования TfidfVectorizer.
Я пошел к kaggle , чтобы получить некоторые примеры данных о рецензиях на фильмы
Я использовал негатив (neg) отзывы. Для моих целей не имеет значения, что это за данные, мне просто нужны текстовые данные.
Импорт необходимых пакетов
import pandas as pd
import glob
from sklearn.feature_extraction.text import TfidfVectorizer
Как будут использоваться эти пакеты?
мы собираемся использовать панды для подготовки данных для TfidfVectorizer
glob будет использоваться для сбора местоположений каталога файлов
TfidfVectorizer является звездой шоу
Соберите местоположения файлов, используя Glob
ls_documents = []
for name in glob.glob('/location/to/folder/with/document/files/*'):
ls_documents.append(name)
Это создаст список файловместах.
Считать данные из первых 10 файлов
ls_text = []
for document in ls_documents[:10]:
f = open(document,"r")
ls_text.append(f.read())
Теперь у нас есть список текста.
Импорт в панды
df_text = pd.DataFrame(ls_text)
Переименоватьстолбец, чтобы было легче работать с
df_text.columns = ['raw_text']
Очистите данные, удалив все строки с пустыми значениями
df_text['clean_text'] = df_text['raw_text'].fillna('')
Возможно, вы захотите выполнить другую очистку. Полезно сохранять необработанные данные и создавать отдельные «чистые» столбцы.
Создайте объект tfidf - я собираюсь снабдить его английскими стоп-словами
tfidf = TfidfVectorizer(stop_words='english')
подогнать и преобразовать созданный выше clean_text, передав tfidf серию clean_text
tfidf_matrix = tfidf.fit_transform(df_text['clean_text'])
Вы можете увидеть названия элементов из tfidf
tfidf.get_feature_names()
Вы увидите что-то похожее на это
['10',
'13',
'14',
'175',
'1960',
'1990s',
'1997',
'20',
'2001',
'20th',
'2176',
'60',
'80',
'8mm',
'90',
'90s',
'_huge_',
'aberdeen',
'able',
'abo',
'accent',
'accentuate',
'accident',
'accidentally',
'accompany',
'accurate',
'accused',
'acting',
'action',
'actor',
....
]
Вы можете посмотреть на форму матрицы
tfidf_matrix.shape
В моем примере я получаю форму
(10, 1733)
Примерно это означает, что 1733 слова (то есть токены) описывают 10 документов
Не уверен, что выв этом вам могут пригодиться две статьи.