Spaces:
Sleeping
Sleeping
merge: resolve conflicts, keep HF Space config + v2 content
Browse files- .gitattributes +35 -0
- Dockerfile +13 -0
- README.md +26 -10
- src/streamlit_app.py +40 -0
.gitattributes
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
| 2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
| 3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
| 29 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 30 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 31 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 32 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 33 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
Dockerfile
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
FROM python:3.13.5-slim
|
| 2 |
+
WORKDIR /app
|
| 3 |
+
RUN apt-get update && apt-get install -y \
|
| 4 |
+
build-essential \
|
| 5 |
+
curl \
|
| 6 |
+
git \
|
| 7 |
+
&& rm -rf /var/lib/apt/lists/*
|
| 8 |
+
COPY requirements.txt ./
|
| 9 |
+
RUN pip3 install -r requirements.txt
|
| 10 |
+
COPY . .
|
| 11 |
+
EXPOSE 8501
|
| 12 |
+
HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health
|
| 13 |
+
ENTRYPOINT ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]
|
README.md
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
# Project Mizan ู
ูุฒุงู: A Multilingual Misinformation Detector
|
| 2 |
|
| 3 |
## Manifesto
|
|
@@ -67,27 +82,27 @@ The fine-tuned AraBERT model is publicly available on Hugging Face Hub:
|
|
| 67 |
## How to Run Locally
|
| 68 |
|
| 69 |
1. **Clone the repo**
|
| 70 |
-
|
| 71 |
git clone https://github.com/KhaledTTarabay/Project-Mizan.git
|
| 72 |
cd Project-Mizan
|
| 73 |
-
|
| 74 |
|
| 75 |
2. **Create and activate virtual environment**
|
| 76 |
-
|
| 77 |
python -m venv venv
|
| 78 |
venv\Scripts\activate # Windows
|
| 79 |
source venv/bin/activate # Mac/Linux
|
| 80 |
-
|
| 81 |
|
| 82 |
3. **Install dependencies**
|
| 83 |
-
|
| 84 |
pip install -r requirements.txt
|
| 85 |
-
|
| 86 |
|
| 87 |
4. **Run the app**
|
| 88 |
-
|
| 89 |
streamlit run app.py
|
| 90 |
-
|
| 91 |
|
| 92 |
> Note: No local model training required. The AraBERT model loads automatically from Hugging Face Hub on first run.
|
| 93 |
|
|
@@ -99,8 +114,9 @@ The fine-tuned AraBERT model is publicly available on Hugging Face Hub:
|
|
| 99 |
|---|---|---|
|
| 100 |
| v1 | Deprecated | TF-IDF/KNN baseline |
|
| 101 |
| v2 | Current | AraBERT Arabic pipeline |
|
| 102 |
-
| v3 | Planned | English transformer upgrade,|
|
| 103 |
|
| 104 |
---
|
| 105 |
|
| 106 |
-
*This README was drafted with AI assistance.*
|
|
|
|
|
|
| 1 |
+
<<<<<<< HEAD
|
| 2 |
+
---
|
| 3 |
+
title: Project Mizan
|
| 4 |
+
emoji: ๐
|
| 5 |
+
colorFrom: red
|
| 6 |
+
colorTo: red
|
| 7 |
+
sdk: docker
|
| 8 |
+
app_port: 8501
|
| 9 |
+
tags:
|
| 10 |
+
- streamlit
|
| 11 |
+
pinned: false
|
| 12 |
+
short_description: Arabic Misinformation Detection Model
|
| 13 |
+
license: mit
|
| 14 |
+
---
|
| 15 |
+
|
| 16 |
# Project Mizan ู
ูุฒุงู: A Multilingual Misinformation Detector
|
| 17 |
|
| 18 |
## Manifesto
|
|
|
|
| 82 |
## How to Run Locally
|
| 83 |
|
| 84 |
1. **Clone the repo**
|
| 85 |
+
```bash
|
| 86 |
git clone https://github.com/KhaledTTarabay/Project-Mizan.git
|
| 87 |
cd Project-Mizan
|
| 88 |
+
```
|
| 89 |
|
| 90 |
2. **Create and activate virtual environment**
|
| 91 |
+
```bash
|
| 92 |
python -m venv venv
|
| 93 |
venv\Scripts\activate # Windows
|
| 94 |
source venv/bin/activate # Mac/Linux
|
| 95 |
+
```
|
| 96 |
|
| 97 |
3. **Install dependencies**
|
| 98 |
+
```bash
|
| 99 |
pip install -r requirements.txt
|
| 100 |
+
```
|
| 101 |
|
| 102 |
4. **Run the app**
|
| 103 |
+
```bash
|
| 104 |
streamlit run app.py
|
| 105 |
+
```
|
| 106 |
|
| 107 |
> Note: No local model training required. The AraBERT model loads automatically from Hugging Face Hub on first run.
|
| 108 |
|
|
|
|
| 114 |
|---|---|---|
|
| 115 |
| v1 | Deprecated | TF-IDF/KNN baseline |
|
| 116 |
| v2 | Current | AraBERT Arabic pipeline |
|
| 117 |
+
| v3 | Planned | English transformer upgrade, morphology-native Arabic NLP |
|
| 118 |
|
| 119 |
---
|
| 120 |
|
| 121 |
+
*This README was drafted with AI assistance.*
|
| 122 |
+
>>>>>>> 684d5eda2f4a4ae878fc998a21f04ae550ced9fa
|
src/streamlit_app.py
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import altair as alt
|
| 2 |
+
import numpy as np
|
| 3 |
+
import pandas as pd
|
| 4 |
+
import streamlit as st
|
| 5 |
+
|
| 6 |
+
"""
|
| 7 |
+
# Welcome to Streamlit!
|
| 8 |
+
|
| 9 |
+
Edit `/streamlit_app.py` to customize this app to your heart's desire :heart:.
|
| 10 |
+
If you have any questions, checkout our [documentation](https://docs.streamlit.io) and [community
|
| 11 |
+
forums](https://discuss.streamlit.io).
|
| 12 |
+
|
| 13 |
+
In the meantime, below is an example of what you can do with just a few lines of code:
|
| 14 |
+
"""
|
| 15 |
+
|
| 16 |
+
num_points = st.slider("Number of points in spiral", 1, 10000, 1100)
|
| 17 |
+
num_turns = st.slider("Number of turns in spiral", 1, 300, 31)
|
| 18 |
+
|
| 19 |
+
indices = np.linspace(0, 1, num_points)
|
| 20 |
+
theta = 2 * np.pi * num_turns * indices
|
| 21 |
+
radius = indices
|
| 22 |
+
|
| 23 |
+
x = radius * np.cos(theta)
|
| 24 |
+
y = radius * np.sin(theta)
|
| 25 |
+
|
| 26 |
+
df = pd.DataFrame({
|
| 27 |
+
"x": x,
|
| 28 |
+
"y": y,
|
| 29 |
+
"idx": indices,
|
| 30 |
+
"rand": np.random.randn(num_points),
|
| 31 |
+
})
|
| 32 |
+
|
| 33 |
+
st.altair_chart(alt.Chart(df, height=700, width=700)
|
| 34 |
+
.mark_point(filled=True)
|
| 35 |
+
.encode(
|
| 36 |
+
x=alt.X("x", axis=None),
|
| 37 |
+
y=alt.Y("y", axis=None),
|
| 38 |
+
color=alt.Color("idx", legend=None, scale=alt.Scale()),
|
| 39 |
+
size=alt.Size("rand", legend=None, scale=alt.Scale(range=[1, 150])),
|
| 40 |
+
))
|