Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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 常见nlp任务的效率_Java_Python_Nlp - Fatal编程技术网

Java 常见nlp任务的效率

Java 常见nlp任务的效率,java,python,nlp,Java,Python,Nlp,我正在尝试制作一个大量使用词性标注的应用程序。但是nltk的词性标注功能在我看来似乎不符合标准,例如: import nltk text = "Obama delivers his first speech." sent = nltk.sent_tokenize(text) loftags = [] for s in sent: d = nltk.word_tokenize(s) print nltk.pos_tag(d) 结果: akshayy@ubuntu

我正在尝试制作一个大量使用词性标注的应用程序。但是nltk的词性标注功能在我看来似乎不符合标准,例如:

import nltk
text = "Obama delivers his first speech."

sent  =  nltk.sent_tokenize(text)


loftags = []
for s in sent:
    d = nltk.word_tokenize(s)   

    print nltk.pos_tag(d)
结果:

akshayy@ubuntu:~/summ$python nn1.py [('Obama','NNP'),('delivers','NNS'),('his','PRP$),('first','JJ'),('speech','NN'),('

与斯坦福NLP相比,这是不好的。现在,当我在Python环境上投入了足够的时间和精力时,转向java对我来说似乎并不现实。此外,与java相比,我更倾向于使用C,因此Python也更适合于将来的使用。因此,第一个问题是: 1) 你真的认为Java更适合nlp任务,因为有大量可用的工具。我做了很好的研究,发现java有更大的社区致力于nlp任务


2) 相反,有没有什么好的方法可以让我创建自己的句子解析器,然后再创建pos-tagger,以便灵活地修改将来使用的任何语言

您肯定应该使用一个基于Java的POS标记器。我用标签,但还有其他的。NLTK主要是一种教学工具包,不用于工业强度用途。基于Java的标记器也会更快


但是,使用Java工具包并不妨碍您使用Python进行工作。用Python编写一个只运行Java命令并解析结果以便在Python代码中使用的包装器类非常简单。

Python有非常好的XML/HTML解析库,如Beautiful Soup[6]和Scrape.py[7]。您可以使用这些库快速浏览web并生成大型数据集,以提高模型的性能(因为让我们面对现实,大数据胜过复杂性) 考虑其他选项:对于这种类型的工作,使用诸如 C++ +java /Stult>这样的编译语言是没有意义的,除非您需要提高性能(计算速度,而不是模型精度)。据我所知,Ruby对于任何机器学习、数据挖掘或自然语言处理任务都毫无用处。也许您可以使用Lisp,但在这一点上,Python有一个更大的生态系统。 在这里阅读更多