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

kga*_*kga 10 python java nlp information-retrieval text-mining

我很快就会开始一个新的项目,我将要做很多文本处理任务,比如搜索,分类/分类,聚类等等.

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

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

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

Chr*_*ris 18

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

NLTK,Gensim,Pattern和许多其他Python模块都非常擅长文本处理.他们的内存使用和性能非常合理.

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

我学习了NLTK,Python帮助我大大减少了开发时间,所以我认为你先给它一个镜头.他们也有一个非常有用的邮件列表,我建议你加入.

如果您有自定义脚本,您可能想要查看它们与PyPy的执行情况.


dan*_*cek 9

没有尝试就很难回答这样的问题.那你为什么不呢

  1. 弄清楚什么是困难的操作
  2. 实现(我的意思是你可以做的最简单,最快的黑客)
  3. 使用大量数据运行它,看看需要多长时间
  4. 弄清楚它是否太慢了

我在过去做过这个,这真的一种方式,看看某些东西是否表现得足够好.


Jak*_*yer 3

就写吧,人编程最大的缺陷就是过早优化。开展一个项目,将其写出来并使其发挥作用。然后返回并修复错误并确保其优化。会有很多人喋喋不休地谈论 x 与 y 的速度,y 比 x 更好,但归根结底它只是一种语言。问题不在于语言是什么,而在于它如何使用它。