Skip to content
This repository has been archived by the owner on Nov 10, 2020. It is now read-only.


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Programming Language Classifier

An example of how to use CreateML and Xcode 10 to train a CoreML model that is used by the Natural Language framework to classify the programming language of source code.

let code = """
struct Plane: Codable {
    var manufacturer: String
    var model: String
    var seats: Int

let url = Bundle.main.url(forResource: "Classifier",
                          withExtension: "mlmodelc")!
let model = try! NLModel(contentsOf: url)
model.predictedLabel(for: code) // Swift


  • macOS Mojave Beta
  • Xcode 10 Beta

These are available for Apple Developer account members to download at


This project includes a pre-trained programming language classifier model. To see it in action, open Classifier Demo.playground, run the playground with the Assistant editor showing the Live View, and then drag and drop a source code file. The model will predict the language of the file based on its contents.

Screenshot of Classifier Example

Training Instructions

  • Clone and setup the repository by running the following commands:
$ git clone`
$ cd Programming-Language-Classifier
$ git submodule update --init
  • Open Trainer.swift in an editor and fill in the placeholder values for destinationPath and corpusPath:
$ open ./Trainer.swift
  • Run Trainer.swift and wait for the model to be trained (on a 2017 MacBook Pro, this took a few minutes):
$ swift ./Trainer.swift
  • Compile the generated .mlmodel bundle using the following command:
$ xcrun coremlc compile path/to/ProgrammingLanguageClassifier.mlmodel .
  • Move the compiled .mlmodelc bundle into the Resources directory of Classifier Demo.playground, replacing any existing resource.



See code-corpora for licensing information of the included projects.

About Flight School

Flight School is a new book series for Swift developers. Each month, we'll explore an essential part of iOS, macOS, and Swift development through concise, focused books.

If you'd like to get in touch, feel free to message us on Twitter (@flightdotschool) or email us at


No releases published

Sponsor this project


No packages published