@lexstile

Что использовать для обучения на питоне?

Есть 2 базы текстов, одни подходят, вторые нет.
Необходимо обучить сеть, чтобы она могла определять, какой текст подходит, а какой нет(русский/английский).
Мне нужно, чтобы сеть отличала подачу (как написаны тексты) нужных текстов от тех, которые не подходят.
Можно ли решить подобную задачу по средством библиотек на питоне? Какую лучше использовать?
  • Вопрос задан
  • 183 просмотра
Решения вопроса 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
чтобы сеть отличала подачу (как написаны тексты)

Святая наивность!
По такой четкой постановке грех не решить задачу одной строчкой вообще.
Готовой библиотеки для "сравнения подачи текста (как написано)" вы не найдёте.

Пробуйте посчитать суммарную статистику N-грамм для всех подходящих и неподходящих текстов. Возьмите топ этой статистики (m самых часто употребимых в корпусе размеченных текстов n-грамм), зафиксируйте сортировку n-грамм и формируйте m-мерные вектора для каждого текста.
На получившихся векторах обучайте многослойную нейронку.
Экспериментируйте со скрытыми слоями, с размером вектора m, размером обучающей выборки, чтобы избегать переобучения и получить достаточный коэффициент правильных ответов.

Если корпуса маловаты, попробуйте мутировать их смешивая тексты с разбитием по предложениям. Но чудес от этого не ждите, кардинально выборку вы так не увеличите. На какие-то проценты, может быть улучшите прогноз.

А так у яндекса есть какой-то инструментарий.
Вот еще https://www.nltk.org/
Либу для нейронок на питоне вообще найти не проблема. Любую берите с которой проще освоиться.

Можно попробовать с нормализацией слов перед векторизацией поиграться, но вместе с окончаниями может потеряться важное: фамильярность, падежи, лица, деепричастия и прочие обороты.
По-хорошему нужно дать тексты почитать филологу, чтобы он сделал заключение по каким основным критериям разбит корпус. Даже если критерии будут нечеткими, вы, возможно, поймёте допустима ли нормализация, какие фиксипрованные критерии добавить...
Возможно эффективным будет в вектор независимо от частотности добавить матерные слова, просторечивые выражения, неологизмы, признаки наличия сложносочинённых предложений, признаки переусложнённого словообразования и т.д.
Это, в зависимости от назначения вашей системы, может помочь или помешать.

Консультируйтесь со специалистами. Всё на свете нейронками не закидаешь.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@yuraafanasiev
Парень, я конечно понимаю, возможно ты еще недостаточно опытен в данной сфере программирования и многие будут бросаться на меня с оскаленными зубами и аргументами о моей неграммотности, но дам тебе совет, просто бери одну строку из текста, далее сделай перебор строки по символам с помощью цикла и во время перебора проверяй не совпадает/ют символ/ы в строке с английскими буквами(можешь создать список с отдельно написанными буквами 'a', 'b', 'c' и т.д). Надеюсь я тебе помог) На самом деле это очень извращенский способ, но тем не менее рабочий :)

Если будет нужна помощь, можешь обратиться сюда: vk.com/yuraafanasiev почти всегда на связи
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы