自动检测文件语言

Auto-detect language of file

有没有一种方法可以自动检测写入文件的语言,或者说 "this file is 20% C, 30% python, 50% shell." 一定有某种方法,因为 Github 的远程服务器似乎可以自动检测语言.此外,如果文件是多种语言的混合体,那么设置文件扩展名以使其代表文件中的那些语言的实际方法是什么。也许文件在语言方面必须是同质的。我还在学习。此外,有没有一种方法可以自动检测 Github 等远程站点上代码库的字节。所以基本上就像 Github 的语言栏,除了栏显示项目占用了多少字节。

我认为Github使用文件扩展名来决定用什么语言编写代码。

至于使用语言自动检测文件扩展名,我想你可以创建一个分类模型。

您将不得不创建一个大型数据集,其中包含许多不同语言的文件及其相应的标签(语言名称)。然后将该训练数据提供给神经网络(可能是 RNN-LSTM)来训练模型。然后在新数据上使用该模型根据代码预测语言。

我从来没有做过这样的事情。但这将是一个有趣的项目。

Linux 上的 file 命令可以合理地猜测文件的语言,但基本上它只是查看文件的第一个字符并将它们与已知情况进行比较:"if the file starts with blah-blah-blah it is probably thus-and-so".

至于包含“20% C、30% Python 等”的文件——如果您有这样的文件,您会如何处理? C 编译器和 Python 编译器都不会对此感到满意。