Страницы

Поиск по вопросам

вторник, 9 июля 2019 г.

Создание обучающей выборки scikit-learn

Добрый день! Меня интересует, как, имея несколько наборов текстов (предположим, формата txt), использовать их в качестве обучающей выборки для программы классификации текстов на языке python, используя библиотеку scikit-learn. Во всех примерах что я нашел, предлагают загружать обучающие выборки - и нет примера создания и использования своей.


Ответ

Я бы в данном случае попробовал следующее:
составить "dictionary" (словарь): {'ful_path_file_1':'category', ...} попробовать обрезать комментарии и константы (например все строки-литералы). Задача не тривиальная т.к. в различных языках - разные способы комментирования (единичные и мультистрочные). "токенизировать" оставшийся после очистки от комментов текст исходника, чтобы получился список слов/команд выбрать наиболее популярные комманды для каждого файла и добавить их к общему списку списков - т.е. в результате у вас должен получиться список, каждым элементом которого, будет список отобранных слов/комманд соответствуещего исходного файла: [['#include ...', 'printf(...)', ...], ['import ...', 'print(...)', ...]] "скормить" полученный список TfidfVectorizer
В общем как-то так...
UPDATE:
пример для первого пункта:
In [5]: import re
In [6]: files = ['O:/categories/cpp/article_2.txt', 'O:/categories/python/article_1.txt']
In [7]: input_files = {f:re.search(r'\/categories\/([^\/]*)/', f).group(1) for f in files}
In [8]: print(input_files) {'O:/categories/python/article_1.txt': 'python', 'O:/categories/cpp/article_2.txt': 'cpp'}

Комментариев нет:

Отправить комментарий