Added:
- Added support for Japanese to `DepCCGParser`. (credit: KentaroAOKI https://github.com/CQCL/lambeq/pull/24)
- Overhauled the `CircuitAnsatz` interface, and added three new ansätze.
- Added helper methods to `CCGTree` to get the children of a tree.
Added a new `.tree2diagram` method to `TreeReader`, extracted from `TreeReader.sentence2diagram`.
- Added a new `TreeReaderMode` named `HEIGHT`.
- Added new methods to `Checkpoint` for creating, saving and loading checkpoints for training.
- Documentation: added a section for how to select the right model and trainer for training.
- Documentation: added links to glossary terms throughout the documentation.
- Documentation: added UML class diagrams for the sub-packages in lambeq.
Changed:
- Dependencies: bumped the minimum versions of `discopy` and `torch`.
- `IQPAnsatz` now post-selects in the Hadamard basis.
- `PytorchModel` now initialises using `xavier_uniform`.
- `CCGTree.to_json` can now be applied to `None`, returning `None`.
- Several slow imports have been deferred, making lambeq much faster to import for the first time.
- In `CCGRule.infer_rule`, direction checks have been made explicit.
- `UnarySwap` is now specified to be a `unaryBoxConstructor`.
- `BobcatParser` has been refactored for easier use with external evaluation tools.
- Documentation: headings have been organised in the tutorials into subsections.
Fixed:
- Fixed how `CCGRule.infer_rule` assigns a `punc + X` instance: if the result is `X\X` the assigned rule is `CONJUNCTION`, otherwise the rule is `REMOVE_PUNCTUATION_LEFT` (similarly for punctuation on the right).
Removed:
- Removed unnecessary override of `.from_diagrams` in `NumpyModel`.
- Removed unnecessary `kwargs` parameters from several constructors.
- Removed unused `special_cases` parameter and `_ob` method from `CircuitAnsatz`.