我最近参加了coursera关于“自然语言处理”的课程,我学到了很多关于解析,IR和Q& A等其他有趣方面的知识,虽然我很好地掌握了这些概念,但实际上并没有了解它的任何实际知识。任何人都可以建议我使用自然语言处理的好的在线教程或书籍吗?
由于
答案 0 :(得分:34)
你可以阅读Jurafsky和Martin的Speech and Language Processing (2008 edition),这是该领域的标准教科书。它很长,并且有很多主题,因此我建议您阅读真正适合您兴趣的章节。
此外,最好的学习方法几乎肯定是从头开始实际实施NLP算法。您可以选择一些标准任务(语言建模,文本分类,POS标记,NER,解析)并从头开始实现各种算法(ngram模型,HMM,朴素贝叶斯,MaxEnt,CKY),以真正理解它们的工作原理。找到一些免费的数据集来测试你的实现也不应该太难。
最后,有很多关于特定NLP算法的教程非常出色。例如,如果你想建立一个HMM,我建议Jason Eisner's tutorial,它也包括EM的平滑和无监督训练。如果你想为无人监督的朴素贝叶斯训练实施吉布斯采样,我建议你Philip Resnik's tutorial。
答案 1 :(得分:9)
除了Jurafsky和Martin的书之外,Christopher D. Manning和HinrichSchütze的Foundations of Statistical Natural Language Processing也被广泛使用。对于IR,Manning等人。还写了Introduction to Information Retrieval,可以在他们的网站上在线阅读或下载。
答案 2 :(得分:7)
如果您想了解如何使用自然语言的实用知识,您应该开始实施它。 我建议在Python中使用NLTK(Natural Language Proecessing Toolkit)。它很容易在python中实现NLP。
您可以参考此链接 http://nltk.org/
或者您可以在线试用 http://cst.dk/online/pos_tagger/uk/
答案 3 :(得分:1)
而不是阅读一本特定的书,潜入大海的论文可能是一个好主意。例如,http://www.aclweb.org包含许多关于NLP的主题。通过这些论文,您可以获得更多论文,其中一些论文是NLP某个分支的基础。而且因为它们是由不同的作者写的,所以你不太可能受到一种观点的影响太多。
答案 4 :(得分:1)
如果您是Java开发人员,那么有关如何使用LingPipe在http://alias-i.com/lingpipe/demos/tutorial/read-me.html构建NLP系统组件的大量教程列表。完全披露我写了一些教程和下面的一本书。
有一些更具工业导向性的书籍:
1)Richard M Reese的Java自然语言处理
这包括如何使用一系列开源工具包(包括LingPipe)执行一些常见任务。
2)使用Java和LingPipe Cookbook平装本进行自然语言处理 作者:Breck Baldwin,Krishna Dayanidhi
本书的任务驱动程度为"构建组件"并涵盖了驱动大多数文本驱动的NLP系统的主要技术。它不包括翻译。它比第一本书更详细,覆盖范围比LingPipe教程更广泛,但有时不如教程详细。
Breck的
答案 5 :(得分:0)
有一个名为TeLeMaCo的教学和学习资料中心。您可以找到NLP许多方面的资源,并且可以轻松添加您在网络上找到的更多资料。