Автоопределение языка файла - PullRequest
0 голосов
/ 06 сентября 2018

Есть ли способ автоматического определения языка, на котором написан файл, или способ сказать: «Этот файл - 20% C, 30% python, 50% shell». Должен быть какой-то способ, потому что удаленный сервер Github, кажется, автоматически определяет языки. Кроме того, если файл представляет собой гибрид языков, каков де-факто способ установить расширение файла, чтобы оно представляло те языки, которые есть в файле. Возможно, файлы должны быть однородными по отношению к языку. Я до сих пор учусь. Кроме того, есть ли способ автоматического определения байтов кодовой базы на удаленном сайте, таком как Github. Так что в основном, как и в панели Github для языков, кроме панели показывает, сколько байт занимает проект.

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Команда file в Linux делает разумную работу по угадыванию языка файла, но в основном она просто просматривает первые символы файла и сравнивает их с известными ситуациями: «если файл начинается с бла-бла»-blah это, вероятно, так и так ".

Что касается файла, содержащего" 20% C, 30% Python и т. д. "- что бы вы сделали с таким файлом, если бы у вас был такой?Ни компилятор C, ни компилятор Python не были бы довольны этим.

0 голосов
/ 06 сентября 2018

Я думаю, что Github использует расширения файлов, чтобы решить, на каком языке написан код.

Что касается автоматического определения расширения файла с использованием языка, я полагаю, вы могли бы создать модель классификации.

Вам нужно будет создать большой набор данных с множеством файлов на разных языках и соответствующими им метками (названием языка). Затем передайте эти обучающие данные в нейронную сеть (возможно, RNN-LSTM) для обучения модели. Затем используйте эту модель на новых данных, чтобы предсказать язык на основе кода.

Я никогда не делал ничего подобного. Но это был бы веселый проект.

...