Java version: 1.8+
Some points:
- Basic implementation (no dropout or other enhancements)
- Based on Stream API (Collection.parallelStream)
- Number of threads is controlled by JVM
- Learned vocabulary is case-sensitive
- Implemented features:
- Dummy learning (controlled by max vocabulary size and number of iterations)
- Single sentence encoding (subwords that belong to single word are separated by predefined tokens)
- File based serialization/deserialization
Look at Test.java for example
Source:
Neural Machine Translation of Rare Words with Subword Units