我正在寻找一个可以检测用哪种编程语言编写代码段的库。我们可以假设代码段仅以一种语言编写。

例如对于自然语言,我使用Python库guess_language:

>>> from guess_language import guess_language
>>> guess_language("Ces eaux regorgent de renégats et de voleurs.")
'fr'
>>> guess_language("Tienes que seguir tu corazón.")
'es'
>>> guess_language("いいえ!忍者がいます")
'ja'
>>> not guess_language("??")
True


如果可能的话,它应该返回属于每种编程语言的概率(例如,对于给出的一个代码段,输入,输出可能是94%MATLAB,30%Python,5%Java等)。理想情况下,可以从Python / Java / C ++(优先级降序)调用,并且免费。

评论

片段将如何呈现给图书馆?您可以使用例如github.com/github/linguist,如果代码片段在文件中。

根据代码片段的大小,这几乎不可能可靠地完成,您可能也可以使用一些正则表达式规则来寻找定义特征的方法。

关于堆栈溢出的类似问题

@FranckDernoncourt您是否在乎实际的库是用哪种语言编写的?

@RockPaperLizard并非完全可以,只要有可能,就可以从Python / Java / C ++调用(降序排列)。

#1 楼

这是红宝石库github使用的一个github /语言学家。

评论


您能举个用法示例吗?谢谢!

–尼古拉斯·拉乌尔(Nicolas Raoul)♦
16-3-14在6:17

#2 楼

这是另一个blackducksw / ohcount
,请参阅ohcount_detect_language功能,用于C,还具有RubyPython端口。

评论


您能举个用法示例吗?谢谢!

–尼古拉斯·拉乌尔(Nicolas Raoul)♦
16-3-14在6:17

#3 楼

另一个库isagalaev / highlight.js用于JavaScript,请参见Highlight.js源代码中的highlightAuto函数,它给出了1或2个可能的答案。

评论


您能举个用法示例吗?谢谢!

–尼古拉斯·拉乌尔(Nicolas Raoul)♦
16-3-14在6:17