Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何学习实用的自然语言处理?_Java_Frameworks_Nlp - Fatal编程技术网

Java 如何学习实用的自然语言处理?

Java 如何学习实用的自然语言处理?,java,frameworks,nlp,Java,Frameworks,Nlp,我有一些Java、Pascal、PERL、SQL和R方面的背景知识,我希望找到一条合理的最小阻力路径,从该背景中自动或半自动地从文本中提取概念,并将结果转化为可进行统计分析的内容(如果需要,愿意学习新语言)。我想我需要在几千页的文本上执行一些NLP任务,特别是POS处理、名词短语识别、词义消歧。我认为,后者可能需要半监督机器学习来提高准确性。我的问题是从哪里开始学习实用的NLP?参加一门课程或阅读NLP书籍似乎比我现在需要的更详细地了解NLP任务是如何执行的——我只需要知道它的功能、准确度以及有

我有一些Java、Pascal、PERL、SQL和R方面的背景知识,我希望找到一条合理的最小阻力路径,从该背景中自动或半自动地从文本中提取概念,并将结果转化为可进行统计分析的内容(如果需要,愿意学习新语言)。我想我需要在几千页的文本上执行一些NLP任务,特别是POS处理、名词短语识别、词义消歧。我认为,后者可能需要半监督机器学习来提高准确性。我的问题是从哪里开始学习实用的NLP?参加一门课程或阅读NLP书籍似乎比我现在需要的更详细地了解NLP任务是如何执行的——我只需要知道它的功能、准确度以及有哪些替代方案。跳进一些现有的NLP框架似乎让我陷入困境。我使用GATE进行POS处理,但输出要么是XML,我不知道如何进一步处理,要么是postgresql,这是一种操作w/SQL生成统计数据的工具。而且,当时GATE没有提取词义的好方法。

将使您能够利用现有的Java知识。但毫无疑问,@neeagl的建议是一个杰出的建议。此外,Python可能是启动某些功能的最佳语言。

将使您能够利用现有的Java知识。但毫无疑问,@neeagl的建议是一个杰出的建议。此外,Python可能是启动某些功能的最佳语言。

NLTK是您的最佳选择。:)


此外,如果您对实现LDA、LSA等算法感兴趣,我建议您使用
gensims

NLTK


此外,如果您对实现LDA、LSA等算法感兴趣,我建议您使用
gensims

我现在对NLTK、NLTK书籍和斯坦福CoreNLP软件有了一些经验,因此我想我可以在有实际兴趣的人应该如何进行NLP方面添加一些有用的内容

我最初的目标是完成一些NLP任务,并且做得很好,而不需要了解NLP是如何做的(至少在特殊兴趣领域之外)。有了这个目标,我可能应该从斯坦福CoreNLP软件开始。它或多或少地完成了最先进的工作,学习如何将文本放入软件并获得输出非常简单。NLTK在输出质量方面比CoreNLP差,而且,除了统计搭配分析(据我所知),CoreNLP还有更广泛的实用算法

例如,在NLTK中,要将名词短语组块,需要编写正则表达式或训练机器学习例程。对于解析,您可以学习多种解析方法,并且可以应用多种语法。我不清楚哪些是最好的,或者现有的是否是最先进的。在CoreNLP中,您请求一个解析,然后得到看起来非常有能力的解析。语法分析识别名词短语,所以我识别名词短语的问题就解决了

毫无疑问,我最终需要更多地了解我是否在尽可能优化地做事,以及我是否应该针对特定数据进行培训。但我手头有一个实际问题,需要看看NLP是否可以开始解决这个问题。我可以稍后再圈回来填补空白。所以,现在,CoreNLP的使用简单地满足了我的需求

CoreNLP将把结果输出到XML或注释对象,因此我需要学习如何在Java中处理这些结果。而且,我需要学习如何做一些额外的处理和添加结果


对于有兴趣学习NLP的一些细节的人来说,NLTK书将是一本优秀的实践书。而且,了解NLTK如何表示和操作语言数据是很有用的,尽管最终在Java中的处理方式有所不同,这也是我现在关注的重点。Java对于大型、复杂的任务也可能更有用——该语言比Python更结构化,速度快一个数量级。最后,CoreNLP有一个管道——你输入文本,指出你想要什么类型的注释,然后输出最终产品。在NLTK中,如何将许多不同的注释(如POS、引理、解析)堆叠在彼此的上面还不太清楚。

我现在已经有了NLTK、NLTK书籍和斯坦福CoreNLP软件的一些经验,因此我想我可以在有实际兴趣的人应该如何处理NLP方面添加一些有用的东西

我最初的目标是完成一些NLP任务,并且做得很好,而不需要了解NLP是如何做的(至少在特殊兴趣领域之外)。有了这个目标,我可能应该从斯坦福CoreNLP软件开始。它或多或少地完成了最先进的工作,学习如何将文本放入软件并获得输出非常简单。NLTK在输出质量方面比CoreNLP差,而且,除了统计搭配分析(据我所知),CoreNLP还有更广泛的实用算法

例如,在NLTK中,要将名词短语组块,需要编写正则表达式或训练机器学习例程。对于解析,您可以学习多种解析方法,并且可以应用多种语法。我不清楚哪些是最好的,或者现有的是否是最先进的。在CoreNLP中,您请求一个解析,然后得到看起来非常有能力的解析。语法分析识别名词短语,所以我识别名词短语的问题就解决了

毫无疑问,我最终需要更多地了解我是否在尽我所能地做事情