用途:DisCoPy 提供字符串图(string diagrams)与幺半范畴(monoidal categories)的 Python 实现,用于组合式 NLP 与范畴量子自然语言处理,把语法与语义建模为范畴中的态射。
主要能力:
- 类型与态射:用 Ty 表示对象(如名词 n、句子 s),用 Box 表示态射,支持顺序组合 >> 与张量组合 @。
- 字符串图:Diagram 可绘制并导出为图片,如 diagram.draw(path="diagram.png")。
- 预群语法:discopy.grammar.pregroup 提供 Ty、Word、Cup、Id,支持左右伴随(n.r、n.l),可构造如 john @ sleeps >> Cup(n, n.r) @ Id(s) 的句子解析。
- 函子语义:discopy.tensor 提供 Tensor、Dim,可把语法映射到向量空间,组合得到句子含义。
- 量子电路语义:discopy.quantum 提供 Circuit、Ket、Bra、H、CX,可把词映射为量子电路。
使用方式:安装命令为 pip install discopy。基本流程是定义类型与词盒,用 >> 和 @ 组合成图,再调用 draw() 可视化或通过函子映射到向量/电路语义。
适用场景:组合式语义计算、语法解析、范畴论教学与研究、量子 NLP 实验。
限制:资料未提供性能、规模、收费与平台支持等信息;类型不匹配时无法组合,需保证态射类型一致。