用于查询uriel类型数据库的简单库。
lang2vec的Python项目详细描述
lang2vec
一个用于查询uriel类型数据库的简单库,
以及从马拉维亚等人,2017年的学习到的语言向量。
基于patrick littell的lang2vec工具。 运行 库目前支持一个简单的操作:查询uriel数据库,
以及来自马拉维亚等人的培训语言载体,2017年。
主要操作是 一个最小的工作示例是: 丢失的功能将作为 您可以使用 第二个参数是一个命名的特征集,以字符串或字符串列表的形式提供,或者是两个特征集的元素联合a b,或者是两个特征集的连接a+b。因此,"geo+syntax_u wals syntax嫒u sswl"给出了与wals和sswl语法特征集的元素联合连接的地理特征向量。 请注意,允许并集的并集,但不允许并集的并集。此外,两个特征集的并集仅限于具有相似大小的集。一个很好的经验法则是,如果两个集合的名称以相同的前缀开头( 我们还提供帮助函数 可用的功能集可以用 功能和库存数据库中的集合: 集合的平均值: 特征值的knn预测: 语言家族和子家族成员: 与地球表面固定点的距离 学习向量用于Malaviya等人的类型预测。 一个热身份向量: 设置 "最小"转换在任何并集或连接之后应用。(如果没有,同一组中的集合,如语法集合,就不会是相同的维度进行比较。) 如果您使用lang2vec,请引用以下文章: 如果您使用学习向量,请引用以下论文: 以上不同的功能集来自许多来源:安装
python3-m pip install--index url https://test.pypi.org/simple/--no deps lang2vec
用法
get_features(languages,feature_sets,header=false,minimal=false)
,它返回一个字典,其中包含语言中每种语言的特征向量,用于
功能集
>>> import lang2vec.lang2vec as l2v
>>> features = l2v.get_features("eng", "geo")
>>> features["eng"]
[0.7664999961853027, 0.7924000024795532, 0.8277999758720398, 0.7214000225067139,...]
get_features()
的第一个参数是iso 639-3代码的列表或空格分隔字符串(例如["deu","eng"]
)。
任何两个字母代码ISO 639-1都将映射到相应的ISO-639-3代码。>>> features = l2v.get_features(["eng", "fra"], "geo")
>>> features["fra"]
[0.7378000020980835, 0.7682999968528748, 0.7982000112533569, 0.6941999793052673, ...]
>>> features = l2v.get_features("eng fr", "syntax_wals")
>>> features["eng"]
[1.0, 0.0, 0.0, 0.0, 0.0, 0.0, ...]
>>> features["fr"]
[1.0, 0.0, 0.0, 0.0, 0.0, 0.0, ...]
'--'
返回。如果语言不可用,库将打印警告消息,例如>>> features = l2v.get_features("eng", "learned")
Note: Language eng not found in the 'learned' feature set. However, it is available in the URIEL feature sets.
>>> features["eng"][:5]
['--', '--', '--', '--', '--']
lang2vec.languages
或lang2vec.available\languages()
列出支持的语言。
uriel语言可以用lang2vec.uriel_languages
或lang2vec.available_riel_languages()
列出。
具有学习向量的语言可以用lang2vec.learned_languages
或lang2vec.available_learned_languages()
列出
"inventory","phonology","syntax"
),那么它们的大小是相似的。同样,丢失的功能(参见上一个示例)将返回为'--'
fs_union()
和fs_concatenation()
。它们是"重载"的,因此它们可以接收任意数量的特征集参数或特征集列表。一些示例:>>> l2v.fs_union("syntax_wals", "syntax_sswl")
'syntax_wals|syntax_sswl'
>>> l2v.fs_union(["syntax_wals", "syntax_sswl"])
'syntax_wals|syntax_sswl'
>>> l2v.fs_concatenation( ["geo", l2v.fs_union(["syntax_wals", "syntax_sswl"])])
'geo+syntax_wals|syntax_sswl'
>>> features = l2v.get_features("eng", l2v.fs_concatenation( ["geo", l2v.fs_union(["syntax_wals", "syntax_sswl"])]))
>>> features['eng'][:5]
[0.7664999961853027, 0.7924000024795532, 0.8277999758720398, 0.7214000225067139, 0.8568999767303467]
>>> features = l2v.get_features("eng", "learned+syntax_wals")
Note: Language eng not found in the 'learned' feature set. However, it is available in the URIEL feature sets.
>>> features["eng"][:5]
['--', '--', '--', '--', '--']
>>> features["eng"][512:522]
[1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0]
lang2vec.feature_sets
或lang2vec.available_feature_sets()
列出。
我们也在此列出:获取功能有两个可选参数(语言,功能集,header=false,minimal=false)
。
设置header=true还将返回特殊字典条目
'code'
中的功能名称。例如:>>> features = l2v.get_features("eng", "syntax_wals", header=True)
>>> features['CODE'][:5]
['S_SVO', 'S_SOV', 'S_VSO', 'S_VOS', 'S_OVS']
minimal=true
将抑制仅包含零、仅包含一或仅包含空的列。参考文献:
@inproceedings{littell2017uriel,
title={Uriel and lang2vec: Representing languages as typological, geographical, and phylogenetic vectors},
author={Littell, Patrick and Mortensen, David R and Lin, Ke and Kairis, Katherine and Turner, Carlisle and Levin, Lori},
booktitle={Proceedings of the 15th Conference of the European Chapter of the Association for Computational Linguistics: Volume 2, Short Papers},
volume={2},
pages={8--14},
year={2017}
}
@inproceedings{malaviya17emnlp,
title = {Learning Language Representations for Typology Prediction},
author = {Malaviya, Chaitanya and Neubig, Graham and Littell, Patrick},
booktitle = {Conference on Empirical Methods in Natural Language Processing (EMNLP)},
address = {Copenhagen, Denmark},
month = {September},
year = {2017}
}
推荐PyPI第三方库