Skip to content

Instantly share code, notes, and snippets.

View skojaku's full-sized avatar

SADAMORI KOJAKU skojaku

View GitHub Profile
@skojaku
skojaku / tmux.conf
Created June 20, 2025 09:00
Tmux configuration
# Change the prefix
set -g prefix C-s
# Set vim-style key bindings
setw -g mode-keys vi
# Start selection with 'v' in copy mode
# Added because 'v' selection wasn't working despite 'V' line selection working
bind -T copy-mode-vi v send -X begin-selection
@skojaku
skojaku / doi2bibtex
Last active May 22, 2025 14:27
doi2bibtex - Alfred workflow
#!/bin/bash
# doi_or_title_fetcher.sh
# Usage examples:
# ./doi_or_title_fetcher.sh "10.1145/3511808.3557220"
# ./doi_or_title_fetcher.sh "Promptagator Few-shot dense retrieval from 8 examples"
#
# Install bibtex-tidy to use this script:
# >> npm install -g bibtex-tidy
#
"""
A script to generate Marp presentation slides from quiz questions stored in JSON format.
This script takes a JSON file containing quiz questions and generates a Markdown file formatted
for Marp presentations. Each question is placed on its own slide. The output follows Marp's
markdown syntax with appropriate slide separators and formatting.
Functions:
create_marp_header() -> str: Creates the YAML front matter for Marp slides
format_question_slide(question_data: dict) -> str: Formats a single question into a slide
@skojaku
skojaku / pagerank.py
Last active January 27, 2025 19:54
PageRank
import numpy as np
from scipy import sparse
from tqdm import tqdm
import numba
from numba import jit, float64, int64
from numba.experimental import jitclass
def calc_ppr_forward_push_fast(adj, source_nodes=None, alpha=0.15, epsilon=1e-6, batch_size=1000):
"""
Compute Personalized PageRank (PPR) scores for specified source nodes using a numba-accelerated forward push method.
@skojaku
skojaku / rsvd.py
Created November 11, 2024 16:30
Randomized Singular Value Decomposition
import numpy as np
from scipy import sparse
#
# Randomized SVD
#
def rSVD(X, dim, **params):
if isinstance(X, list):
return _rSVD_submatrices(X, r=dim, **params)
from tqdm import tqdm
import numpy as np
import pandas as pd
import scipy.sparse as sparse
def preferential_attachment_model_empirical(
t0, nrefs, net_train, t_start, mu=None, sig=None, c0=20, n0=0
):
"""
@skojaku
skojaku / one_pass_sampling_without_replacement.py
Created October 29, 2023 10:25
One-pass sampling without replacement by Efraimidis and Spirakis algorithm
# Efraimidis and Spirakis algorithm
# https://www.sciencedirect.com/science/article/abs/pii/S002001900500298
import numpy as np
from numba import njit
@njit(nogil=True)
def one_pass_sampling_without_replacement(n, k, weights):
# Draw a uniform random variable for each item
u = np.random.rand(n)
@skojaku
skojaku / element-centric-similarity.py
Last active September 7, 2023 15:57
Element-centric similarity
import numpy as np
from scipy import sparse
#
# Evaluation
#
def calc_esim(y, ypred, normalize=False):
"""
Element centric similarity.
@skojaku
skojaku / NonBacktrackingMatrixEmbedding.py
Last active June 2, 2023 19:58
NonBacktrackingMatrixEmbedding.py
"""Non-backtracking spectral embedding
Reference
---------
Krzakala, Florent, et al. "Spectral redemption in clustering sparse networks." Proceedings of the National Academy of Sciences 110.52 (2013): 20935-20940.
Example
-------
```python
@skojaku
skojaku / OAGBERT.py
Last active May 19, 2023 17:04
OAGBERT
# -*- coding: utf-8 -*-
# @Author: Sadamori Kojaku
# @Date: 2022-10-05 06:24:53
# @Last Modified by: Sadamori Kojaku
# @Last Modified time: 2023-05-19 13:04:26
import sys
from tqdm.auto import tqdm
import numpy as np
import pandas as pd
import torch