app4.ddlog 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. articles(
  2. @key
  3. @distributed_by
  4. id text,
  5. @searchable
  6. content text,
  7. zbdw text,
  8. agency text,
  9. winner text
  10. ).
  11. articles_processed(
  12. @key
  13. id text,
  14. content text
  15. ).
  16. function articles_processed over(
  17. doc_id text,
  18. content text
  19. ) returns rows like articles_processed
  20. implementation "udf/articles_processed.py" handles tsv lines.
  21. articles_processed += articles_processed(doc_id,content):-
  22. articles(doc_id,content,_,_,_).
  23. sentences(
  24. @key
  25. @distributed_by
  26. doc_id text,
  27. @key
  28. sentence_index int,
  29. @searchable
  30. sentence_text text,
  31. tokens text[],
  32. lemmas text[],
  33. pos_tags text[],
  34. ner_tags text[],
  35. doc_offsets int[],
  36. dep_types text[],
  37. dep_tokens int[]
  38. ).
  39. function nlp_markup over (
  40. doc_id text,
  41. content text
  42. ) returns rows like sentences
  43. implementation "udf/nlp_markup_with_foolnltk.py" handles tsv lines.
  44. sentences += nlp_markup(doc_id, content) :-
  45. articles_processed(doc_id, content).
  46. entity_mention(
  47. entity_id text,
  48. entity_text text,
  49. entity_type text,
  50. doc_id text,
  51. sentence_index int,
  52. begin_index int,
  53. end_index int
  54. ).
  55. function map_entity_mention over(
  56. doc_id text,
  57. sentence_index int,
  58. tokens text[],
  59. ner_tags text[]
  60. )returns rows like entity_mention
  61. implementation "udf/map_entity_mention.py" handles tsv lines.
  62. entity_mention += map_entity_mention(
  63. doc_id,sentence_index,tokens,ner_tags):-
  64. sentences(doc_id,sentence_index,_,tokens,_,_,ner_tags,_,_,_).
  65. relation(
  66. @key
  67. @distributed_by
  68. id text,
  69. name text,
  70. step_host int,
  71. type_host text,
  72. step_guest int,
  73. type_guest text
  74. ).
  75. feature_window(
  76. @key
  77. size int
  78. ).
  79. feature_entity(
  80. @key
  81. @references(relation="isBiddingAgency",column="entity_id",alias="isBiddingAgency")
  82. entity_id text,
  83. feature text,
  84. window_size int
  85. ).
  86. function feature_entity over(
  87. entity_id text,
  88. entity_begin int,
  89. entity_end int,
  90. doc_id text,
  91. sentence_index int,
  92. tokens text[],
  93. pos_tags text[],
  94. ner_tags text[],
  95. window_size int
  96. )returns rows like feature_guest_BiddingAgency
  97. implementation "/udf/feature_entity.py" handles tsv lines.
  98. feature_entity += feature_entity(
  99. entity_id,entity_begin,entity_end,doc_id,sentence_index,tokens,pos_tags,ner_tags,window_size
  100. ):-
  101. entity_mention(entity_id,entity_text,_,doc_id,sentence_index,entity_begin,entity_end),
  102. sentences(doc_id,sentence_index,sentence_text,tokens,_,pos_tags,ner_tags,_,_,_),
  103. feature_window(window_size),
  104. window_size=10.
  105. label_guest_BiddingAgency(
  106. entity_id text,
  107. label int,
  108. rule_id text
  109. ).
  110. label_guest_BiddingAgency(entity_id,1,"标注数据"):-
  111. entity_mention(entity_id,entity_text,_,doc_id,_,_,_),
  112. articles(doc_id,_,_,entity_text,_).
  113. label_guest_BiddingAgency(entity_id,-1,"非标注数据"):-
  114. entity_mention(entity_id,entity_text,guest_type,doc_id,_,_,_),
  115. relation(id,_,_,_,_,guest_type),
  116. id = "BiddingAgency",
  117. articles(doc_id,_,_,entity_text2,_),
  118. entity_text!=entity_text2.
  119. label_guest_WinnerOfBidding(
  120. entity_id text,
  121. label int,
  122. rule_id text
  123. ).
  124. label_guest_WinnerOfBidding(entity_id,1,"标注数据"):-
  125. entity_mention(entity_id,entity_text,_,doc_id,_,_,_),
  126. articles(doc_id,_,_,_,entity_text).
  127. label_guest_WinnerOfBidding(entity_id,-1,"非标注数据"):-
  128. entity_mention(entity_id,entity_text,guest_type,doc_id,_,_,_),
  129. relation(id,_,_,_,_,guest_type),
  130. id = "WinnerOfBidding",
  131. articles(doc_id,_,_,_,entity_text2),
  132. entity_text!=entity_text2.
  133. label_guest_Tenderer(
  134. entity_id text,
  135. label int,
  136. rule_id text
  137. ).
  138. label_guest_Tenderer(entity_id,1,"标注数据"):-
  139. entity_mention(entity_id,entity_text,_,doc_id,_,_,_),
  140. articles(doc_id,_,entity_text,_,_).
  141. label_guest_Tenderer(entity_id,-1,"非标注数据"):-
  142. entity_mention(entity_id,entity_text,guest_type,doc_id,_,_,_),
  143. relation(id,_,_,_,_,guest_type),
  144. id = "Tenderer",
  145. articles(doc_id,_,entity_text2,_,_),
  146. entity_text!=entity_text2.
  147. @extraction
  148. is_tenderer?(
  149. @key
  150. @references(relation="entity_mention",column="entity_id",alias="entity_mention")
  151. entity_id text
  152. ).
  153. is_tenderer(entity_id) = if label>0 then TRUE else if label<0 then FALSE else NULL end:-
  154. label_guest_Tenderer(entity_id,label,_).
  155. @weight(f_Tenderer)
  156. is_tenderer(entity_id):-
  157. feature_entity(entity_id,f_Tenderer,window),
  158. label_guest_Tenderer(entity_id,_,_),
  159. window=10.
  160. @extraction
  161. is_biddingagency?(
  162. @key
  163. @references(relation="entity_mention",column="entity_id",alias="entity_mention")
  164. entity_id text
  165. ).
  166. is_biddingagency(entity_id) = if label>0 then TRUE else if label<0 then FALSE else NULL end:-
  167. label_guest_BiddingAgency(entity_id,label,_).
  168. @weight(f_BiddingAgency)
  169. is_biddingagency(entity_id):-
  170. feature_entity(entity_id,f_BiddingAgency,window),
  171. label_guest_BiddingAgency(entity_id,_,_),
  172. window=10.
  173. @extraction
  174. is_winnerofbidding?(
  175. @key
  176. @references(relation="entity_mention",column="entity_id",alias="entity_mention")
  177. entity_id text
  178. ).
  179. is_winnerofbidding(entity_id) = if label>0 then TRUE else if label<0 then FALSE else NULL end:-
  180. label_guest_WinnerOfBidding(entity_id,label,_).
  181. @weight(f_WinnerOfBidding)
  182. is_winnerofbidding(entity_id):-
  183. feature_entity(entity_id,f_WinnerOfBidding,window),
  184. label_guest_WinnerOfBiddinig(entity_id,_,_),
  185. window=10.