Add uie python api (#214)

* add uie pybind

* Add uie result pybind

* Add uie python class

* fix UIEModel pythonargs

* Add schema node pybind

* remove uie print

* Fix cpp build ci
This commit is contained in:
Jack Zhou
2022-09-13 19:03:06 +08:00
committed by GitHub
parent 82580ac11e
commit 54bea3160d
11 changed files with 272 additions and 43 deletions

View File

@@ -81,9 +81,9 @@ int main(int argc, char* argv[]) {
results.clear();
// Relation Extraction
predictor.SetSchema({{"竞赛名称",
{SchemaNode("主办方"), SchemaNode("承办方"),
SchemaNode("已举办次数")}}});
predictor.SetSchema(
{SchemaNode("竞赛名称", {SchemaNode("主办方"), SchemaNode("承办方"),
SchemaNode("已举办次数")})});
predictor.Predict(
{"2022语言与智能技术竞赛由中国中文信息学会和中国计算机学会联合主办百度"
"公司、中国中文信息学会评测工作委员会和中国计算机学会自然语言处理专委会"
@@ -93,9 +93,9 @@ int main(int argc, char* argv[]) {
results.clear();
// Event Extraction
predictor.SetSchema({{"地震触发词",
{SchemaNode("地震强度"), SchemaNode("时间"),
SchemaNode("震中位置"), SchemaNode("震源深度")}}});
predictor.SetSchema({SchemaNode(
"地震触发词", {SchemaNode("地震强度"), SchemaNode("时间"),
SchemaNode("震中位置"), SchemaNode("震源深度")})});
predictor.Predict(
{"中国地震台网正式测定5月16日06时08分在云南临沧市凤庆县(北纬24."
"34度东经99.98度)发生3.5级地震震源深度10千米。"},
@@ -104,14 +104,14 @@ int main(int argc, char* argv[]) {
results.clear();
// Opinion Extraction
predictor.SetSchema(
{{"评价维度",
// NOTE(zhoushunjie): It's necessary to explicitly use
// std::vector to convert initializer list of SchemaNode whose size is
// two. If not to do so, an ambiguous compliation error will occur in
// mac x64 platform.
std::vector<SchemaNode>{SchemaNode("观点词"),
SchemaNode("情感倾向[正向,负向]")}}});
predictor.SetSchema({SchemaNode(
"评价维度",
// NOTE(zhoushunjie): It's necessary to explicitly use
// std::vector to convert initializer list of SchemaNode whose size is
// two. If not to do so, an ambiguous compliation error will occur in
// mac x64 platform.
std::vector<SchemaNode>{SchemaNode("观点词"),
SchemaNode("情感倾向[正向,负向]")})});
predictor.Predict(
{"店面干净,很清静,服务员服务热情,性价比很高,发现收银台有排队"},
&results);
@@ -119,16 +119,16 @@ int main(int argc, char* argv[]) {
results.clear();
// Sequence classification
predictor.SetSchema({"情感倾向[正向,负向]"});
predictor.SetSchema(SchemaNode("情感倾向[正向,负向]"));
predictor.Predict({"这个产品用起来真的很流畅,我非常喜欢"}, &results);
std::cout << results << std::endl;
results.clear();
// Cross task extraction
predictor.SetSchema({{"法院", {}},
{"原告", {SchemaNode("委托代理人")}},
{"被告", {SchemaNode("委托代理人")}}});
predictor.SetSchema({SchemaNode("法院", {}),
SchemaNode("原告", {SchemaNode("委托代理人")}),
SchemaNode("被告", {SchemaNode("委托代理人")})});
predictor.Predict({"北京市海淀区人民法院\n民事判决书\n(199x)"
"建初字第xxx号\n原告:张三。\n委托代理人李四,北京市 "
"A律师事务所律师。\n被告B公司法定代表人王五开发公司"