Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
saliccio committed Aug 19, 2022
1 parent 6ac7acb commit b048e02
Showing 1 changed file with 20 additions and 12 deletions.
32 changes: 20 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
# Lexlata
Kamuda Mevzuat Arama Motoru

Geliştiren Takım: BeeLingua
## Biz Kimiz?
BeeLingua, çeşitli disiplinlerde eğitim görüp doğal dil işleme alanında geliştirecekleri projelerle sektörde tespit ettikleri sorunlara nokta atışı çözümler geliştirmeyi hedefleyen, aynı zamanda İTÜ Doğal Dil İşleme Araştırma Grubu bünyesinde çalışmalarına devam eden bir grup İTÜ öğrencisi tarafından kurulmuştur.

## Lexlata Nedir?
Lexlata; kamunun ihtiyaçları doğrultusunda geliştirilen, doğal dil işleme metotlarıyla desteklenmiş bir mevzuat arama motorudur. İçerdiği ulusal ve uluslararası yönetmelikler, kanunlar, kararnameler, tüzükler, genelgeler ve tebliğler arasında kelime ve kelime grubu ile arama yapma özelliğinin yanı sıra çıkan sonuçlarda otomatik doküman özetleme, otomatik etiketleme ile doküman sınıflandırma, sorulan soruya veri tabanındaki dokümanlardan yararlanarak cevap verebilme özellikleri ile Lexlata, hızlı ve etkili şekilde ihtiyaç duyulan dokümana ulaşım sağlayacaktır.

![Project Image](https://github.com/BeeLingua/Lexlata/blob/main/documentation/ui_image.png)

## Geliştirme Süreci ve Yöntem
- Öncelikle doc2vec ve tf-idf modellerini denedik ve projemizin temelini attık, sonrasında BERT modelinin başarımının yüksek olması nedeniyle BERT modelini kullanmaya karar verdik.
- BERT modelini eğitmek çok fazla kaynak gerektirdiğinden önceden eğitilmiş bir modeli (https://huggingface.co/dbmdz/bert-base-turkish-cased) temel aldık.
- BERT modelini bize verilen veri kümesiyle ve mevzuat.gov.tr sitesinden çektiğimiz veriyle eğittik.
- SBERT kütüphanesini kullanarak bütün cümlelerin vektör temsillerini elde edip kaydettik.
- Yine SBERT kütüphanesi kullanarak sorgu olarak girilen dokümanın da vektör temsilini elde ettik.
- Yine SBERT kütüphanesini kullanarak sorgu olarak girilen dokümanın da vektör temsilini elde ettik.
- Girilen dokümanın temsili ile sistemde kayıtlı olan dokümanlar içerisindeki cümlelerin temsillerini kosinüs benzerliği metoduyla karşılaştırdık.
- Bu benzerliğe göre en yakın dokümanları sıraladık.

Expand All @@ -17,7 +23,7 @@ Geliştiren Takım: BeeLingua

https://huggingface.co/dbmdz/bert-base-turkish-uncased

- Geliştirme süreci sonunda bizim tarafımızdan sunulan model:
- Geliştirme süreci sonunda bizim tarafımızdan sunulan LexBERT modeli:

https://huggingface.co/sfurkan/LexBERT-turkish-uncased

Expand All @@ -44,12 +50,12 @@ tqdm
transformers
```
### Docker ile kurulum yapılacaksa:
Bütün bağlılıklar imajın içerisindedir. Projeyi çalıştırmak için ek olarak indirilmesi gereken bir şey yoktur.
Bütün bağlılıklar imajın içerisindedir. Projeyi çalıştırmak için ek olarak indirilmesi gereken bir şey yoktur. Ayrıca imaj, yukarıdaki bağlılıklara ek olarak projenin web uygulaması şeklinde sunulması için açık kaynak kodlu 'streamlit' çatısını kullanmaktadır.

## Kurulum ve Kullanım
Proje, Jupyter Notebook kullanarak veya Docker konteyneri oluşturularak 2 farklı şekilde kullanılabilir.
Proje, Jupyter Notebook kullanarak veya Docker konteyneri oluşturularak 2 farklı şekilde kullanılabilir. (Daha kullanıcı dostu bir yöntem sunması nedeniyle Docker kullanılması önerilmektedir.)
### Jupyter Notebook Kullanarak Kurulum
1- Bilgisayarınızda Jupyter Notebook yüklü değilse yükleyin (https://jupyter.org/install). Jupyter Notebook projenin çalıştırılması için gerekli olan tüm modüllere sahiptir. Buna rağmen modülün bulunamadığına dair hata almanız halinde projenin ihtiyaç duyduğu her modülün yüklenmesi için kullanılacak komutlar aşağıdadır.
1- Bilgisayarınızda Jupyter Notebook yüklü değilse yükleyin (https://jupyter.org/install). Jupyter Notebook, projenin çalıştırılması için gerekli olan tüm modüllere sahiptir. Buna rağmen herhangi bir modülün bulunamadığına dair hata almanız halinde projenin ihtiyaç duyduğu her bir modülün yüklenmesi için kullanılacak komutlar aşağıdadır.
```
pip install numpy==1.23.2
pip install pandas==1.4.3
Expand All @@ -61,25 +67,27 @@ pip install transformers==4.18.0
```


2- Github reposu üzerindeki 'Releases' kısmından projenin son sürümünü indirin.
2- Github reposu üzerindeki 'Releases' kısmından projenin son sürümünü indirin (Jupyter Notebooks başlıklı release).

3- İndirdiğiniz sıkıştırılmış dosyayı herhangi bir klasöre çıkartın.

3- İndirdiğiniz dosyayı herhangi bir klasöre çıkartın.
4- Jupyter Notebook kullanarak, kullanmak istediğiniz modele göre 'Lexlata-Final-Model.ipynb' (ana model) veya 'Lexlata-Final-Model-Classification-Alternative.ipynb' (alternatif model) dosyalarından birini açın.

3- Jupyter Notebook kullanarak kullanmak istediğiniz modele göre 'Lexlata-Final-Model.ipynb' veya 'Lexlata-Final-Model-Classification-Alternative.ipynb' dosyalarından birini açın.
5- Yukarıda bulunan 'Cell' sekmesine tıkladıktan sonra 'Run All' seçeneğine tıklayın, bütün hücreler çalıştırılana kadar bekleyin.

4- Son hücrede bulunan örnek kullanımı inceleyerek kolayca kullanmaya başlayabilirsiniz.
6- Bütün hücreler çalıştırıldıktan sonra son hücrede bulunan INPUT_TEXT değişkenini istediğiniz şekilde değiştirerek çalıştırabilir ve sonucu görebilirsiniz.

### Docker Kullanarak Kurulum
1- Yüklü değilse Docker indirip kurun. (https://www.docker.com/products/docker-desktop)

2- Komut satırını açıp aşağıdaki komutları yazın:
```
docker pull sfurkan20/lexlata
docker run -d --name Lexlata -p 0.0.0.0:8501 sfurkan20/lexlata
docker run -d --name Lexlata -p 8501:8501 sfurkan20/lexlata
```
3- Tarayıcınızla aşağıdaki adrese gidin:
```
http://localhost:8501
```

4- Arama yerine sorgunuzu girerek veya doküman yükleyerek arama yapabilirsiniz.
4- Yaklaşık 5 dakika süren ilk yükleme süresi sonunda arama yerine sorgunuzu girerek veya doküman yükleyerek arama yapabilirsiniz.

0 comments on commit b048e02

Please sign in to comment.