Computational Approaches to Code Switching