Logo Lanfrica

ab-dek/Amharic-IRS

Domain:

natural language processing

Record type:

software
Creator:
ab-
Host:
amharic search engine # Amharic Information Retrieval System an amharic search engine written in python, , designed to crawl, index, and search Amharic language documents from the web. ## Libraries Used - **Scrapy**(for crawling/scraping) - **SQLite**(metadata storage) - **Flask**(creating the API endpoint) ## Components The search engine consists of three main components: 1. **Crawler:** Discovers and fetches Amharic web documents. 2. **Indexer:** Processes these documents, creates an inverted index, calculates TF-IDF related scores, and stores metadata. 3. **Query Engine:** Accepts user queries, processes them, and retrieves relevant documents using the index, serving results via a Flask API. A **Preprocessor** library is developed to handle Amharic text processing and improve the performance of the IR system. the preprocessing pipeline includes cleaner(removing puncutations, stopwords...), transliteration, abbreviation expansion and stemming. #### the Stemmer Due to the highly inflected nature and complex morphology of Amharic, a hybrid stemming approach was developed. the approaches include: 1. Lookup Table 2. Rule-Based Stemming 3. Iterative Affix Stripping ## Running the System ### Crawler The crawling process was initiated using a set of seed URLs known to contain Amharic content. The selected seed URLs were: - Addis Standard: addisstandard.com - Ethiopian News Agency (ENA): ena.et - Ethiopian Reporter: ethiopianreporter.com - Voice of America (VOA) Amharic: amharic.voanews.com - Walta Information Center: waltainfo.com Individual spiders were developed for each target website. to run a crawler spider: ```bash scrapy crawl -o repository/ ``` ### Indexer Raw document files (JSON) crawled are processed and transformed into searchable datastructure including term weights(inverted_index.json and idf.json) and SQLite database (metadata.db) is created to store metadata. to run the indexer: ```bash python indexer.py ``` ### …