Phone numbers in India are a set of unique 10 digit numbers. Out of which, first 4 are network operator/circle code. These prefixes range from 6xxx - 9xxx. Last six are random. This is a dataset, charts, model of first four numbers with their respective state, operator name.
Note: Starting from commit hash 9de66f3f74e465c973f5e2a47241c7627ca94c32
, the dataset is refractored to contain only 3 columns: series, operator, circle. This makes it easier to use/read and eliminates duplicate columns name.
Note: This dataset is provided "as-is" without any warranty of any kind. While I have personally fixed many errors, I still can't guarantee that this dataset is accurate. Use at your own risk.
- Privacy friendly alternative to reverse phone number lookup services like Truecaller
See the section below for pretrained models, training and inference script.
-
Model training
-
Spam Detection
A Python script named, predict-operator.py
is provided with this project. It works by checking if the operator to predict is in dataset. If not, it will try using the appropriate model for predicting the operator. If appropriate model is not found, it will train the model using Gradient Boosting Classifer(GBC), save it, and predict using newly trained model.
Pretrained models are provided, but if you want, you can train your own by running python train_save_all.py
$ python predict-operator.py ../data/6xxx-in-mob-prefix.csv 7000 ../models/6xxx-gbc.bin
Predicted Operator:
['RJ']
$ python predict-operator.py ../data/9xxx-in-mob-prefix.csv 9000 ../models/9xxx-gbc.bin
Operator Found in Database
['AT']
Majority of this data is sourced from Wikipedia and Telecom Regulatory Authority of India(TRAI). Rest of it was collected from various sources including web scrapping, personal research and other publicly available resources.