访问trips本体和词典的简单python包
pytrips的Python项目详细描述
PyTrips
pytrips提供了一个与trips本体和解析器交互的python接口。
安装
pip install pytrips
pip install pytrips[tools] # optional
python -c "import nltk; nltk.download('wordnet')"
基本用法
加载本体并按名称检索类型:
from pytrips.ontology import load
ont = load()
catch = ont["catch"] # lookup an ontology type
然后检查所述类型:
print(catch)
print(catch.parent)
print(catch.children)
print(catch.arguments)
结果应该是:
# ont::catch
# ont::co-motion
# []
# [<TripsRestriction :neutral >, <TripsRestriction :source >, <TripsRestriction :result >, <TripsRestriction :extent >, <TripsRestriction :affected >, <TripsRestriction :agent >]
检查类型是否互相包含:
catch < ont["event-of-action"]
# Make sure at least one type is explicitly a TripsType. The other can be a string.
"food" > ont["bread"]
或者得到两种类型的最低公共subsumer:
ont["bread"] ^ ont["geo-object"]
为了简单起见,以相同的方式查找单词和本体类型:
ont["person"] # default is to look up an ontology type
ont["ont::person"] # explicitly get the ontology type named "ont::person"
ont["w::person"] # or lookup the list of ontology types that the word "person" can map to
wordnet查找类似:
ont["wn::cat%1:06:00::"]
>> [ont::device]
ont["q::cat"] # returns all lexical and wordnet mappings for the word cat in a dictionary
>> {'lex': [ont::nonhuman-animal, ont::medical-diagnostic],
'wn': [ont::pharmacologic-substance,
ont::female-person,
ont::communication-party,
ont::male-person,
ont::medication,
ont::mammal,
ont::device,
ont::land-vehicle,
ont::vomit]}
或者我们可以指定词性来限制搜索:
ont[("q::move", 'v')]
>> {'lex': [ont::cause-move, ont::move, ont::provoke, ont::activity-ongoing],
'wn': [ont::cause-effect,
ont::change,
ont::believe,
ont::activity-event,
ont::commerce-sell,
ont::move,
ont::progress,
ont::live,
ont::suggest]}