用python进行形式概念分析

concepts的Python项目详细描述


Latest PyPI VersionLicenseSupported Python VersionsFormatReadthedocs

TravisCodecov

concepts是formal concept analysis的简单python实现 (FCA)。

fca提供了一个数学模型来描述一组对象(例如king 亚瑟,罗宾爵士和圣杯)有一套属性(例如人类, 骑士,国王,神秘的)每件物品都有或没有。一个 名为formal context的表定义哪些对象具有给定的属性和 反之亦然,给定对象具有的属性。

安装

这个包在python 2.7和3.5+下运行,使用pip安装:

$ pip install concepts

这也将安装来自pypi as的bitsetsgraphviz包 必需的依赖项。

呈现晶格图取决于Graphviz software。确保它 dot可执行文件位于系统路径上。

快速启动

创建一个形式上下文定义哪个对象具有哪个属性,例如 一个简单的ascii艺术风格的交叉表,包含object行和property列 (或者加载cxt或csv文件):

>>>fromconceptsimportContext>>>c=Context.fromstring('''
...            |human|knight|king |mysterious|
... King Arthur|  X  |  X   |  X  |          |
... Sir Robin  |  X  |  X   |     |          |
... holy grail |     |      |     |     X    |
... ''')>>>c# doctest: +ELLIPSIS<Contextobjectmapping3objectsto4properties[dae7402a]at0x...>

查询对象的公共属性或属性的公共对象。 (派生):

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

获取对象或属性的最近匹配objects properties对。 (形式概念):

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

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

>>>forextent,intentinc.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(view=True)to 直接渲染并显示生成的pdf):

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

进一步阅读

概念格的生成基于c.lindig的算法。 Fast Concept Analysis。在Gerhard Stumme,编辑,与概念 结构-对ICCS 2000的贡献,Shaker Verlag,亚琛,德国,2000年。

包含的示例CXT文件取自uta priss'FCA homepage

另请参见

实现基于这些python包:

  • bitsets–预定义域上的有序子集
  • graphviz–graphviz的简单python接口

以下软件包是在概念的基础上构建的:

如果要将fca应用于更大的数据集,可能需要考虑基于more sophisticated algorithmsother implementations,比如In-Close 或者Fcbo

许可证

概念分布在MIT license下。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
apache HttpClient execute(HttpUriRequest请求)和execute(HttpHost目标,HttpRequest请求)之间的java差异   如何向java进程传递多个密码   java servlet从外部事件调用网页中的javascript弹出/模式对话框   正在重置Unix Java路径变量   java将@Named managed bean注入另一个重用JSF页面?   java Cookie未显示在请求中   java如何记录用户的操作并在用户返回时重播?   java FTPSClient抛出异常javax。网ssl。SSLHandshakeException:握手期间远程主机关闭连接   java“变量可能尚未初始化”在何处使用开关盒进行初始化?   初始化Double java数组   java Android:如何通过按钮启动活动?   java设置外观和感觉颜色   计算两个时间戳对象之间的时间差的日期   扩展画布的类时,绘制方法出现java错误   java在不同的线程中运行JNI方法   java Spring引导OIDC刷新令牌场景   Java slf4j实现:logback vs log4j   java KeyEvents新的KeyEvent变量?   为什么java的模式和匹配器类中没有公共构造函数?   java在JVM上禁用本地JMX连接