用于文本处理的Python或Java(文本挖掘,信息检索,自然语言处理)

时间:2011-05-17 11:46:20

标签: java python nlp information-retrieval text-mining

我很快就会开始一个新项目,我将在那里进行大量的文本处理任务,如搜索,分类/分类,聚类等。

需要处理大量文件;可能是数百万的文件。在初始处理之后,它还必须能够每天更新多个新文档。

我可以使用Python来做这件事,还是Python太慢了?是否最好使用Java?

如果可能的话,我更喜欢Python,因为这是我最近一直在使用的。另外,我会更快地完成编码部分。但这一切都取决于Python的速度。我已经使用Python进行了一些小规模的文本处理任务,只有几千个文档,但我不确定它的扩展程度如何。

4 个答案:

答案 0 :(得分:17)

两者都很好。 Java在文本处理方面有很多动力。 Stanford的文字处理系统,OpenNLPUIMAGATE似乎是最重要的参与者(我知道我错过了一些)。在玩了几分钟之后,您可以在大型语料库上运行StanfordNLP模块。但是,它有很大的内存要求(当我使用它时大约3 GB)。

NLTKGensimPattern以及许多其他Python模块都非常擅长文本处理。他们的内存使用和性能非常合理。

Python扩展,因为文本处理是一个非常容易扩展的问题。解析/标记/分块/提取文档时,您可以非常轻松地使用多处理。一旦你的文本进入任何类型的特征向量,那么你可以使用numpy数组,我们都知道numpy是多么伟大......

我使用NLTK学习,Python帮助我大大缩短了开发时间,因此我认为你先给出了一个镜头。他们也有一个非常有用的邮件列表,我建议你加入。

如果您有自定义脚本,则可能需要查看它们与PyPy的效果。

答案 1 :(得分:9)

如果不尝试,很难回答这样的问题。那你为什么不

  1. 弄清楚什么是困难的操作
  2. 实施(我的意思是你可以做的最简单,最快的黑客)
  3. 使用很多数据运行它,看看需要多长时间
  4. 弄清楚它是否太慢
  5. 我过去已经这样做了,而且它确实 方式来判断某些内容是否表现得足够好。

答案 2 :(得分:3)

只要写下来,人们编程中最大的缺陷就是过早优化。处理项目,写出来并使其正常运行。然后返回并修复错误并确保其优化。关于x和y的速度会有很多人在喋喋不休,y比x好,但在一天结束时它只是一种语言。它不是一种语言,而是它是如何做到的。

答案 3 :(得分:2)

这不是您必须评估的语言,而是用于语言的群集,数据存储/检索等框架和应用服务器。

你可以使用jython并将所有java企业技术用于高负载系统,并使用python进行文本解析。