Graph-based semi-supervised learning techniques have recently attracted increasing attention as a means to utilize unlabeled data in machine learning by placing data points in a similarity graph. However, applying graph-based semi-supervised learning to natural language processing tasks presents unique challenges. First, natural language features are often discrete and do not readily reveal an underlying manifold structure, which complicates the already empirical graph construction process. Second, natural language processing problems often use structured inputs and outputs that do not naturally fit the graph-based framework Finally, scalability issues limit applicability to large data sets, which are common even in modestly-sized natural language processing applications. This research investigates novel approaches to using graph-based semi-supervised learning techniques for natural language processing, and addresses issues of distance measure learning, scalability, and structured inputs and outputs.