简而言之,我的问题:对于给定的字符串,我想确定它是一段代码还是人类语言的自由格式文本。这应该可以在本地设备上的Apple设备(macOS和iOS)上使用。
所以:
body { color: #c00; }
,则可以将其分类为css
或code
。 (Ditto提供更复杂的多行代码段。)the quick brown fox jumps over the lazy dog
,则应将其分类为text
。我想到了使用CoreML。 a great example涉及如何识别编程语言。它缺少一个供我使用的关键要素:如果检测到的语言与任何编程语言都不匹配,则没有“其他”类别。 CoreML也不提供预测的置信度得分。 (如果所有语言的置信度都较低,我可以认为该文本不是代码。)
使用CoreML可以避免这种情况的一种方法是在编程语言示例旁边还用人类语言来训练我的模型,但是我真的不想这样做,我想保持模型的大小相当小。
There is some related work based on Keras可用,我可以看到它能够输出每种语言的置信度得分。我不是Keras或ML的专家,也不知道如何将其带到Apple世界。
我可以使用什么解决方案在Apple平台上区分“代码”和“文本”? (确定特定的编程语言将是一个好处,但并非绝对必要。)虽然这似乎是最有前途的途径,但不一定必须基于机器学习。