# Fake News Revealer

Official implementation of the ["Fake News Revealer (FNR): A Similarity and Transformer-Based Approach to Detect 
Multi-Modal Fake News in Social Media"](https://link.springer.com/article/10.1007/s13278-023-01065-0) paper .

Please do not hesitate to contact me if you have any questions regarding the paper and its implementation. Here is [my email address.](mailto:faezeghorbanpour96@gmail.com)



## Requirments
FNR is built in Python 3.6 using PyTorch 1.8. Please use the following command to install the requirements:

```
pip install -r requirements.txt
```

## How to Run
First, place the data address and configuration into the config file in the data directory, and then follow the train 
and test commands.

### train
To run with Optuna for parameter tuning use this command:

```
python main --data "DATA NAME" --use_optuna "NUMBER OF OPTUNA TRIALS" --batch "BATCH SIZE" --epoch "EPOCHS NUMBER"
```

To run without parameter tuning, adjust your parameters in the config file and then use the below command:
```
python main --data "DATA NAME" --batch "BATCH SIZE" --epoch "EPOCHS NUMBER"
```

### test
In the test step, at first, make sure to have the requested 'checkpoint' file then run the following line:
```
python main --data "DATA NAME" --just_test "REQUESTED TRIAL NUMBER"
```

## Bibtex
Cite our paper using the following bibtex item:

```
 @article{
 ghorbanpour_ramezani_fazli_rabiee_2023, 
 title = {FNR: A Similarity and transformer-based approach to detect multi-modal fake news in Social Media}, volume={13},
 author = {Ghorbanpour, Faeze and Ramezani, Maryam and Fazli, Mohammad Amin and Rabiee, Hamid R.}, 
 DOI = {10.1007/s13278-023-01065-0}, 
 number = {1}, 
 volume={13},
 pages={1--15},
 publisher={Springer},
 journal = {Social Network Analysis and Mining}, 
 year= {2023} 
 } 
```

