| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| """Tests for Extract WikiGraph.""" |
| from absl import logging |
| from absl.testing import absltest |
| from scenic.projects.knowledge_visual_language.data.wikidata import data_util |
|
|
|
|
| class ClipModelsTest(absltest.TestCase): |
| """Single Test based on a dummy input.""" |
|
|
| def test_graph_extraction(self): |
| """Tests whether it could correctly extract 2-hop graph.""" |
| rel_list = [ |
| ["Q1066517", "r1", "Qdummy"], |
| ["Q35581", "r2", "Qdummy"], |
| ["Q2339039", "r2", "Qdummy"], |
| ["Q753878", "r2", "Qdummy"], |
| ] |
| logging.info("Construct KG Graph from edge list.") |
| kg_graph = data_util.construct_kg_graph(rel_list) |
| logging.info("Extract 2-hop subgraphs within wiki-pages.") |
| demo_data = self.demo_input() |
| for d in demo_data: |
| in_context_ents = {ent: True for ent in d["link"] if ent != "UNK"} |
| graph = data_util.extract_2hop_graph(in_context_ents, kg_graph) |
| print(graph) |
| logging.info(len(graph)) |
|
|
| def demo_input(self): |
| d_list = [{ |
| "txt": "yukigassen\n is a snowball fighting-competition from " |
| "japan. today there are annual tournaments in " |
| "s\u014dbetsu, hokkaid\u014d in japan, kemij\u00e4rvi in" |
| " finland, vard\u00f8 in norway, murmansk in russia, " |
| "mount buller, victoria in australia, lule\u00e5 in " |
| "sweden, anchorage in alaska, aparan in armenia, jasper," |
| " alberta and saskatoon, saskatchewan in canada.\nthe " |
| "word consists of the japanese words yuki (snow) and " |
| "kassen (battle) with rendaku. hence \"yukigassen\" " |
| "means snow battle, but is a common term for 'snowball " |
| "fight' in japanese.\n......", |
| "link": { |
| "Q1066517": [[17, 46], [483, 497]], |
| "Q35581": [[106, 114]], |
| "Q744704": [[125, 134]], |
| "Q33": [[138, 145]], |
| "Q108983": [[147, 152], [1720, 1725], [1907, 1912], [2089, 2094]], |
| "Q1763": [[164, 172]], |
| "Q984117": [[184, 206]], |
| "Q26268": [[221, 226], [1534, 1539], [1015, 1020], [1175, 1180], |
| [1363, 1368]], |
| "Q39450": [[238, 247]], |
| "Q797": [[251, 257]], |
| "Q39618": [[259, 265]], |
| "Q399": [[269, 276]], |
| "Q999429": [[278, 293]], |
| "Q10566": [[298, 321]], |
| "Q5287": [[358, 366]], |
| "Q3943791": [[379, 383], [444, 448], [1627, 1631]], |
| "Q178561": [[397, 403]], |
| "Q1192464": [[410, 417]], |
| "Q1035213": [[744, 760]], |
| "Q131647": [[964, 969], [1118, 1123], [1305, 1310], [1477, 1482], |
| [1669, 1674], [1865, 1870], [2047, 2052], [925, 930]], |
| "Q406039": [[1029, 1039], [1189, 1199], [1377, 1387], [1548, 1558], |
| [1734, 1744], [1922, 1926], [2104, 2108]], |
| "Q847956": [[1052, 1064], [1211, 1223], [1404, 1416], [1584, 1596], |
| [1766, 1778], [1951, 1957], [2146, 2152]], |
| "Q873364": [[1073, 1085], [1243, 1255], [1429, 1441], [1608, 1620], |
| [1808, 1820], [1975, 1981], [2175, 2181]], |
| "Q44853": [[1745, 1753]], |
| "Q218082": [[0, 10], [426, 436], [522, 532], [704, 714], [831, |
| 841]], |
| "UNK": [[97, 104], [698, 725], [1040, 1051], [1200, 1210], |
| [1442, 1452], [1597, 1607], [1224, 1242], [1256, 1280], |
| [1559, 1583], [1388, 1403], [1621, 1640], [1779, 1795], |
| [1821, 1826], [1959, 1964], [1928, 1940], [1983, 2006]] |
| }, |
| "entity": "Yukigassen" |
| }, { |
| "txt": |
| "harry hyams\nharry john hyams (2 january 1928 \u2013 19 december " |
| "2015) was a british millionaire who initially made his money as a" |
| " speculative property (real estate) developer. he was best known " |
| "as the developer of the centre point office building in " |
| "london.\n......", |
| "link": { |
| "Q2339039": [[213, 225], [961, 973]], |
| "Q149787": [[283, 289]], |
| "Q19186": [[291, 300]], |
| "Q753878": [[633, 642]], |
| "Q743535": [[1139, 1146]], |
| "Q43747844": [[1301, 1310]], |
| "Q7290153": [[1388, 1402], [1566, 1580]], |
| "Q7743416": [[1584, 1600]], |
| "Q5669913": [[0, 11], [12, 28]] |
| }, |
| "entity": "Harry Hyams" |
| }] |
| return d_list |
|
|
|
|
| if __name__ == "__main__": |
| absltest.main() |
|
|