我最近参加了coursera上的“自然语言处理”课程,学到了很多关于解析、信息检索和其他有趣的方面,如问答等。虽然我很好地掌握了这些概念,但实际上并没有获得任何实践知识。谁能推荐一些好的在线教程或书籍来学习自然语言处理?
谢谢
回答:
你可以阅读Jurafsky和Martin的《语音与语言处理》(2008年版),这是该领域的标准教科书。书很长,涵盖了各种主题,所以我建议你只阅读与你的兴趣相关的章节。
此外,学习的最佳方式几乎肯定是从头开始实现NLP算法。你可以选择一些标准任务(语言建模、文本分类、词性标注、命名实体识别、解析)并从头开始实现各种算法(ngram模型、隐马尔可夫模型、朴素贝叶斯、最大熵、CKY),以真正理解它们的工作原理。找到一些免费的数据集来测试你的实现应该也不难。
最后,有很多关于特定NLP算法的优秀教程。例如,如果你想构建一个隐马尔可夫模型,我建议你参考Jason Eisner的教程,它还涵盖了平滑和使用EM的无监督训练。如果你想实现Gibbs采样用于无监督的朴素贝叶斯训练,我建议你参考Philip Resnik的教程。