0

简而言之,我的问题:对于给定的字符串,我想确定它是一段代码,还是人类语言的自由格式文本。这应该适用于设备本地的 Apple 设备(macOS 和 iOS)。

所以:

  • 如果输入字符串是body { color: #c00; },则可以归类为csscode。(同样适用于更复杂的多行代码片段。)
  • 如果输入是the quick brown fox jumps over the lazy dog,则应归类为text

我想到了使用 CoreML。有一个很好的例子来说明如何识别一种编程语言。它遗漏了我使用的一个关键部分:如果检测与任何编程语言都不匹配,则没有“其他”类别。CoreML 也不提供预测的置信度分数。(如果所有语言的置信度得分都很低,我可以假设文本不是代码。)

使用 CoreML 解决此问题的一种方法是在编程语言示例旁边也使用人类语言训练我的模型,但我真的不想这样做,我想保持模型大小相当小。

有一些基于 Keras 的相关工作可用,我可以看到它能够输出每种语言的置信度分数。不过,我不是 Keras 或 ML 方面的专家,也不知道如何将其带到 Apple 世界。

我可以使用什么解决方案来区分 Apple 平台上的“代码”和“文本”?(识别特定的编程语言将是一个奖励,但并非绝对需要。)不一定必须基于机器学习,尽管这似乎是最有希望的途径。

4

0 回答 0