| import marisa |
| |
| keyset = marisa.Keyset() |
| keyset.push_back("cake") |
| keyset.push_back("cookie") |
| keyset.push_back("ice") |
| keyset.push_back("ice-cream") |
| |
| trie = marisa.Trie() |
| trie.build(keyset) |
| print("no. keys: %d" % trie.num_keys()) |
| print("no. tries: %d" % trie.num_tries()) |
| print("no. nodes: %d" % trie.num_nodes()) |
| print("size: %d" % trie.io_size()) |
| |
| agent = marisa.Agent() |
| |
| agent.set_query("cake") |
| trie.lookup(agent) |
| print("%s: %d" % (agent.query_str(), agent.key_id())) |
| |
| agent.set_query("cookie") |
| trie.lookup(agent) |
| print("%s: %d" % (agent.query_str(), agent.key_id())) |
| |
| agent.set_query("cockoo") |
| if not trie.lookup(agent): |
| print("%s: not found" % agent.query_str()) |
| |
| print("ice: %d" % trie.lookup("ice")) |
| print("ice-cream: %d" % trie.lookup("ice-cream")) |
| if trie.lookup("ice-age") == marisa.INVALID_KEY_ID: |
| print("ice-age: not found") |
| |
| trie.save("sample.dic") |
| trie.load("sample.dic") |
| |
| agent.set_query(0) |
| trie.reverse_lookup(agent) |
| print("%d: %s" % (agent.query_id(), agent.key_str())) |
| |
| agent.set_query(1) |
| trie.reverse_lookup(agent) |
| print("%d: %s" % (agent.query_id(), agent.key_str())) |
| |
| print("2: %s" % trie.reverse_lookup(2)) |
| print("3: %s" % trie.reverse_lookup(3)) |
| |
| trie.mmap("sample.dic") |
| |
| agent.set_query("ice-cream soda") |
| while trie.common_prefix_search(agent): |
| print("%s: %s (%d)" % (agent.query_str(), agent.key_str(), agent.key_id())) |
| |
| agent.set_query("ic") |
| while trie.predictive_search(agent): |
| print("%s: %s (%d)" % (agent.query_str(), agent.key_str(), agent.key_id())) |