跳转到主要内容

使用Python进行形式概念分析

项目描述

Latest PyPI Version License Supported Python Versions Format

Travis Codecov Readthedocs stable Readthedocs latest

Concepts是形式概念分析(FCA)的一个简单Python实现。

FCA 提供了一个数学模型来描述一组具有一系列属性的对象(例如,亚瑟王、罗宾爵士和圣杯)及其属性(例如,人类、骑士、国王和神秘)。一个称为“形式上下文”的表格定义了哪些对象具有特定的属性,反之亦然。

安装

此软件包在 Python 2.7 和 3.5+ 下运行,使用 pip 进行安装

$ pip install concepts

这将还安装所需的依赖项 bitsetsgraphviz 软件包。

渲染格状图需要 Graphviz 软件。确保其 dot 可执行文件在您的系统路径上。

快速入门

创建一个定义哪些对象具有哪些属性的 形式上下文,例如,从简单的 ASCII-art 风格交叉表,其中包含 对象 行和 属性 列(或者加载 CXT 或 CSV 文件)

>>> from concepts import Context

>>> c = Context.fromstring('''
...            |human|knight|king |mysterious|
... King Arthur|  X  |  X   |  X  |          |
... Sir Robin  |  X  |  X   |     |          |
... holy grail |     |      |     |     X    |
... ''')
>>> c  # doctest: +ELLIPSIS
<Context object mapping 3 objects to 4 properties [dae7402a] at 0x...>

查询对象或属性的 共同属性共同对象推导

>>> c.intension(['King Arthur', 'Sir Robin'])
('human', 'knight')

>>> c.extension(['knight', 'mysterious'])
()

获取对象或属性的最近匹配的 对象-属性对形式概念

>>> c['Sir Robin', 'holy grail']
(('King Arthur', 'Sir Robin', 'holy grail'), ())

>>> c['king',]
(('King Arthur',), ('human', 'knight', 'king'))

遍历所有对象-属性对的 概念格

>>> for extent, intent in c.lattice:
...     print('%r %r' % (extent, intent))
() ('human', 'knight', 'king', 'mysterious')
('King Arthur',) ('human', 'knight', 'king')
('holy grail',) ('mysterious',)
('King Arthur', 'Sir Robin') ('human', 'knight')
('King Arthur', 'Sir Robin', 'holy grail') ()

制作格状的 Graphviz 可视化(使用 .graphviz(view=True) 直接渲染并显示结果 PDF)

>>> c.lattice.graphviz()  # doctest: +ELLIPSIS
<graphviz.dot.Digraph object at 0x...>
https://raw.github.com/xflr6/concepts/master/docs/holy-grail.png

进一步阅读

概念格的生成基于 C. Lindig 的算法。 快速概念分析。在 Gerhard Stumme 编著的《使用概念结构工作 - ICCS 2000 贡献》中,Shaker Verlag,德国亚琛,2000 年。

包含的示例 CXT 文件取自 Uta Priss 的 FCA 主页

另请参阅

该实现基于以下 Python 软件包

  • bitsets - 预定义域上的有序子集

  • graphviz - Graphviz 的简单 Python 接口

以下软件包基于 concepts 构建

如果您想将 FCA 应用于更大的数据集,您可能需要考虑基于更复杂算法(如 In-CloseFcbo)的其他实现。

许可证

Concepts 在 MIT 许可证 下分发。

项目详情


下载文件

下载适用于您平台的应用程序文件。如果您不确定该选择哪一个,请了解有关安装包的更多信息。

源代码分发

concepts-0.9.2.zip (240.5 kB 查看哈希值)

上传时间 源代码

构建分发

concepts-0.9.2-py2.py3-none-any.whl (31.4 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下组织支持