Files
instagram-bot/scripts/debug_intent.py

43 lines
1.3 KiB
Python

import re
from GramAddict.core.perception.intent_resolver import _humanize_desc
from GramAddict.core.perception.spatial_parser import SpatialParser
def main():
with open("tests/fixtures/user_profile_dump.xml", "r", encoding="utf-8") as f:
xml = f.read()
parser = SpatialParser()
root = parser.parse(xml)
candidates = parser.get_clickable_nodes(root)
intent_description = "tap 'following' list"
quotes = re.findall(r"['\"](.*?)['\"]", intent_description)
target_text = quotes[0].lower()
localized_targets = [target_text]
semantic_candidates = []
for node in candidates:
n_text = _humanize_desc((node.text or "").lower())
n_desc = _humanize_desc((node.content_desc or "").lower())
for loc_target in localized_targets:
pattern = r"\b" + re.escape(loc_target) + r"\b"
if (
re.search(pattern, n_text)
or re.search(pattern, n_desc)
or loc_target in (node.resource_id or "").lower()
):
semantic_candidates.append(node)
break
print(f"Quotes: {quotes}")
print(f"Num semantic candidates: {len(semantic_candidates)}")
for i, n in enumerate(semantic_candidates):
print(f"[{i}] id={n.resource_id} desc={n.content_desc} text={n.text}")
if __name__ == "__main__":
main()