Skip to content

Instantly share code, notes, and snippets.

View neubig's full-sized avatar

Graham Neubig neubig

View GitHub Profile
@neubig
neubig / pequalnp.py
Last active August 29, 2015 13:57
This is a program that answers the age-old problem of whether P=NP
#!/usr/bin/python
################################################################################
# pequalnp.py
# Graham Neubig
# 4/1/2014
#
# This is a program that provides an answer for the age-old problem of whether
# the class of problems that can be verified in polynomial time (NP) is equal
# to the class of problems for which an answer can be provided in polynomial
@neubig
neubig / plot-gp.py
Created November 19, 2014 02:25
A simple program to sample functions from a Gaussian process and plot them
#!/usr/bin/python
from math import exp
import numpy as np
import matplotlib.pyplot as plt
def rbf_kernel(x1, x2, variance = 1):
return exp(-1 * ((x1-x2) ** 2) / (2*variance))
def gram_matrix(xs):
@neubig
neubig / lstm-lm.py
Last active August 23, 2017 09:18
This is a minimal implementation of training for a language model using long short-term memory (LSTM) neural networks
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# This is a simplified implementation of the LSTM language model (by Graham Neubig)
#
# LSTM Neural Networks for Language Modeling
# Martin Sundermeyer, Ralf Schlüter, Hermann Ney
# InterSpeech 2012
#
# The structure of the model is extremely simple. At every time step we
@neubig
neubig / linalg-calcfunction.py
Last active October 19, 2022 09:50
Examples of linear algebra in numpy
import numpy as np
import sys
################# Explanation ##################
# This is a function to calculate house prices h(x) = -40 + 0.25x
# The first term (-40) is the base price, and "x" is the number of square feet in the house
################################################
# Set up the function
my_function = np.array([-40, 0.25])
@neubig
neubig / dynet-tagger.py
Last active May 21, 2018 06:01
A small sequence labeler in DyNet
"""
DyNet implementation of a sequence labeler (POS taggger).
This is a translation of this tagger in PyTorch: https://gist.github.com/hal3/8c170c4400576eb8d0a8bd94ab231232
Basic architecture:
- take words
- run though bidirectional GRU
- predict labels one word at a time (left to right), using a recurrent neural network "decoder"
The decoder updates hidden state based on:
- most recent word
@neubig
neubig / petstory.yaml
Created April 23, 2019 05:04
petstore with oneOf
openapi: "3.0.0"
info:
version: 1.0.0
title: Swagger Petstore
license:
name: MIT
servers:
- url: http://petstore.swagger.io/v1
paths:
/pets:
@neubig
neubig / best-paper-deadline.py
Last active November 20, 2023 00:45
Best Paper Deadline Time Zone
#### Script to calculate the best paper deadline based on the population on earth based on some not-completely-arbitrary assumptions
# by Graham Neubig
# Results are:
# UTC 8:00 deadline, utility is 1476.1150000000002
# UTC 9:00 deadline, utility is 1438.7800000000002
# UTC 14:00 deadline, utility is 1385.2949999999998
# UTC 15:00 deadline, utility is 1345.945
# UTC 13:00 deadline, utility is 1291.4950000000003
# UTC 7:00 deadline, utility is 1287.1649999999997
@neubig
neubig / identify_japanese_pronouns.py
Created June 25, 2019 18:37
A script to identify Japanese pronouns
import sys
import re
from collections import defaultdict
# This is a script to identify pronouns in Japanese
# It requires data segmented by KyTea (http://www.phontron.com/kytea/)
#
# If you have raw Japanese text (with no spaces), use this script like:
# cat japanese.txt | kytea | python identify_japanese_pronouns.py > japanese_with_pronouns.txt
#
package edu.cmu.empty;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.ui.popup.JBPopupFactory;
import com.intellij.openapi.ui.popup.ListPopup;
import com.intellij.openapi.ui.popup.PopupStep;
import com.intellij.openapi.ui.popup.util.BaseListPopupStep;
@neubig
neubig / orid_to_s2_papers.py
Created May 14, 2021 15:31
Convert OpenReview IDs to Semantic Scholar Papers
import openreview
import argparse
import requests
import time
import sys
import csv
import json
from tqdm import tqdm # Progress bar
# This is a utility script to get a CSV of papers from semantic scholar given OpenReview ids