我很快就会开始一个新项目,我将在那里进行大量的文本处理任务,如搜索,分类/分类,聚类等。
需要处理大量文件;可能是数百万的文件。在初始处理之后,它还必须能够每天更新多个新文档。
我可以使用Python来做这件事,还是Python太慢了?是否最好使用Java?
如果可能的话,我更喜欢Python,因为这是我最近一直在使用的。另外,我会更快地完成编码部分。但这一切都取决于Python的速度。我已经使用Python进行了一些小规模的文本处理任务,只有几千个文档,但我不确定它的扩展程度如何。
答案 0 :(得分:17)
两者都很好。 Java在文本处理方面有很多动力。 Stanford的文字处理系统,OpenNLP,UIMA和GATE似乎是最重要的参与者(我知道我错过了一些)。在玩了几分钟之后,您可以在大型语料库上运行StanfordNLP模块。但是,它有很大的内存要求(当我使用它时大约3 GB)。
NLTK,Gensim,Pattern以及许多其他Python模块都非常擅长文本处理。他们的内存使用和性能非常合理。
Python扩展,因为文本处理是一个非常容易扩展的问题。解析/标记/分块/提取文档时,您可以非常轻松地使用多处理。一旦你的文本进入任何类型的特征向量,那么你可以使用numpy数组,我们都知道numpy是多么伟大......
我使用NLTK学习,Python帮助我大大缩短了开发时间,因此我认为你先给出了一个镜头。他们也有一个非常有用的邮件列表,我建议你加入。
如果您有自定义脚本,则可能需要查看它们与PyPy的效果。
答案 1 :(得分:9)
如果不尝试,很难回答这样的问题。那你为什么不
我过去已经这样做了,而且它确实 方式来判断某些内容是否表现得足够好。
答案 2 :(得分:3)
只要写下来,人们编程中最大的缺陷就是过早优化。处理项目,写出来并使其正常运行。然后返回并修复错误并确保其优化。关于x和y的速度会有很多人在喋喋不休,y比x好,但在一天结束时它只是一种语言。它不是一种语言,而是它是如何做到的。
答案 3 :(得分:2)
这不是您必须评估的语言,而是用于语言的群集,数据存储/检索等框架和应用服务器。
你可以使用jython并将所有java企业技术用于高负载系统,并使用python进行文本解析。