语言学特征集代数
features的Python项目详细描述
features是python中feature set代数的一个简单实现。
语言分析常用的二元或私有特征集 指不同的语言对象组:例如 phonemes具有一些语音特征,如[-consonantal, +high] 或者一组词素出现在特定的人/数字的上下文中 像[-participant, GROUP]这样的组合。通常,这些特性应用于 只有部分组合有效,而其他组合有效 不可能(即引用无对象)–例如[+high, +low],或 [-participant, +speaker]。
有了这个包,这样的功能系统可以用一个简单的偶然事件来定义 表定义(特征矩阵)并存储在 简单的明文配置文件。每个功能系统可以 按其名称加载了,并提供了自己的FeatureSet子类 根据 对给定的定义(相容性、蕴涵性、交集性、统一性, 等等)。
功能在可能的功能之间创建完整的晶格结构 每个功能系统的集合,并允许您导航和可视化它们 关系使用Graphviz graph layout software。
链接
安装
这个包在python 2.7和3.5+下运行,使用pip安装:
$ pip install features
这还将安装来自pypi的concepts包,提供该包所基于的Formal Concept Analysis(fca)算法。
快速启动
按名称加载预定义的功能系统 六向人/数字区分,参见捆绑包中的定义 config.ini在source repository中。
>>>importfeatures>>>fs=features.FeatureSystem('plural')>>>print(fs.context)# doctest: +ELLIPSIS<Contextobjectmapping6objectsto10properties[3011c283]at0x...>|+1|-1|+2|-2|+3|-3|+sg|+pl|-sg|-pl|1s|X|||X||X|X|||X|1p|X|||X||X||X|X||2s||X|X|||X|X|||X|2p||X|X|||X||X|X||3s||X||X|X||X|||X|3p||X||X|X|||X|X||
从字符串或字符串序列创建功能集。使用功能字符串 解析,获取字符串序列以及 它们的规范顺序(定义顺序):
>>>fs('+1 +sg'),fs(['+2','+2','+sg']),fs(['+sg','+3'])(FeatureSet('+1 +sg'),FeatureSet('+2 +sg'),FeatureSet('+3 +sg'))>>>fs('SG1').concept.intent('+1','-2','-3','+sg','-pl')>>>fs('1').string,fs('1').string_maximal,fs('1').string_extent('+1','+1 -2 -3','1s 1p')
使用feature代数:交集(join)、并集/统一(meet), 设置包含(扩展/包含)。进行功能集比较 (logical connectives)。
>>>fs('+1 +sg')%fs('+2 +sg')FeatureSet('-3 +sg')>>>fs('-3')^fs('+1')^fs('-pl')FeatureSet('+1 +sg')>>>fs('+3')>fs('-1')andfs('+pl')<fs('+2 -sg')True>>>fs('+1').incompatible_with(fs('+3'))andfs('+sg').complement_of(fs('+pl'))True
导航已创建的all有效的lattice(Hasse graph)包含 功能集:
>>>fs('+1').upper_neighbors,fs('+1').lower_neighbors([FeatureSet('-3'),FeatureSet('-2')],[FeatureSet('+1 +sg'),FeatureSet('+1 +pl')])>>>fs('+1').upset()[FeatureSet('+1'),FeatureSet('-3'),FeatureSet('-2'),FeatureSet('')]>>>forfinfs:# doctest: +ELLIPSIS...print('[%s] <-> {%s}'%(f.string_maximal,f.string_extent))[+1-1+2-2+3-3+sg+pl-sg-pl]<->{}[+1-2-3+sg-pl]<->{1s}...[-1]<->{2s2p3s3p}[]<->{1s1p2s2p3s3p}
有关如何定义、加载和使用自己的功能系统,请参见the docs。
进一步阅读
另请参见
- concepts–使用python进行形式概念分析
- fileconfig–将文件节配置为对象
- graphviz–graphviz的简单python接口
许可证
特性分布在MIT license下。