什么语言可以推荐用于文本挖掘/解析?

4

我正在进行一些网页文本挖掘的工作。目前,我正在使用Java语言进行操作,但也许有更适合我所需的语言。

以下是我想要完成的任务示例:

根据单词的各个部分(字母、数字、符号等)确定其字符类型,如字母、数字、字母数字混合体、符号等(还有更多类型)。

基于统计数据发现停止词汇。

基于统计和某些逻辑发现一些语法类别(动词、名词、介词、连词)。

我在考虑使用Prolog和R(我不太了解这些语言),但我不知道它们是否适合此类工作,或者其他更适合的语言。

我应该使用哪种语言?如果您有Java的好库,也可以提供建议。


你所说的“更好”是什么意思?如果你已经了解Java,学习另一种编程语言可能需要更长的时间,而且可能并不能为你节省多少时间。 - Peter Lawrey
@PeterLawrey 我不需要一种更好的语言,只是想知道是否有一些更专注于我想要的东西而不是全部都用Java实现的东西。我还没有深入研究这些语言,但我猜想R语言比Java更适合和/或更容易从数据库中进行某些统计分析。 - Renato Dinhani
2
Perl是我首选的文本解析和操作语言,但我认为如果你不熟悉它,使用Java也可以同样适用于这种特定类型的工作。例如,确定字符类似乎在两种语言中都有相同的工作量。 - Jeff Ferland
如果Python不能满足您的需求,我会首选使用Python进行处理,然后使用R进行更深入的统计分析。除非您的组织中有其他人在使用它们,否则我不会费心去学Perl和Java。大型项目不应该使用Perl完成。Python中的工具通常超过Java和Perl中可比较的工具。话虽如此,我已经用过所有语言来进行文本处理,但是我希望一直在使用Python进行文本处理。 :) - Iterator
4个回答

4

Python.!这个领域有非常非常多的库。

但是,我对Prologue和R没有任何了解。但是在文本挖掘和人工智能方面,Python绝对比Java更好用。


1
如果你打算使用Python来完成这个任务,一定要研究一下NLTK库(http://www.nltk.org)。NLTK Book也非常不错。 - bdk

3

我强烈推荐Perl。它具有很多文本处理功能、网页搜索和解析等等。请看看CPAN上可用的模块(>23,000个且不断增长)。


如果你要使用Perl进行文本挖掘,你可能需要查看《文本挖掘应用手册》这本书。该书中的所有代码示例都是用Perl编写的。 - bdk

1

我认为Apache Solr和Nutch为您提供了框架,您可以在此基础上根据自己的需求进行扩展。

Java有一些基本支持,但没有像上述两个产品那样强大!


对于Java中的这种工作,我听说LingPipe库很不错。http://alias-i.com/lingpipe/ 尽管许可证对于非研究用途来说有点陡峭。 - bdk
我不会特别选择Nutch来处理这种情况,因为它使用起来有些麻烦,而且社区活跃度不高。尽管它在下载由Hadoop集群支持的大量网站方面表现出色。 - ahmedyha

0

HTML Unit 可能为您提供一些良好的 API 以获取网页,并通过 XPath 遍历 DOM 中的元素。我已经使用它进行了一段时间,执行了从简单到更复杂的操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接