discopy/discopy
The Python toolkit for computing with string diagrams.
解决的问题
DisCoPy 提供了一种计算字符串图的方法,字符串图是单oidal范畴中态射的图形化表示。它允许用户将复杂的系统(如自然语言语法、量子电路和食谱步骤)建模为可组合、重写并评估为具体数学对象(如张量或函数)的图。
工作原理
该工具包使用 Python 实现了范畴论概念(如 Category、MonoidalCategory 等)的层次结构。它使用由盒子和导线组成的 Diagram 数据结构。这些图可以通过 Functors 进行变换,将抽象图映射到具体实现。例如,一个张量值函子可以使用 PyTorch、NumPy 或 JAX 等库将图评估为张量网络。
适用人群
专为应用范畴论、量子计算机科学和计算语言学(特别是使用组合分布模型如 DisCoCat 的人)的研究人员和实践者设计。
主要亮点
- 多后端张量支持:使用 NumPy、PyTorch、TensorFlow、JAX 等将图评估为张量网络。
- C-语法集成:提供与 spaCy 和 NLTK 接口的上下文无关文法、范畴文法、pregroup 文法和依存文法实现。
- 量子计算工具:与 tket 接口用于电路编译,与 PyZX 接口用于 ZX-演算优化。
- 多样化的数据结构:支持 λ 项(
Term)、组合映射(CMap)和超图,适用于不同的范畴结构。
相关
- 项目
- 项目
- 项目
- 项目
- 项目