自然语言字符串分类技术?

时间:2011-03-26 01:05:17

标签: java python ruby nlp

用于处理和分类自然语言的库/开源软件有哪些?我有一个充满字符串的数据库,它是特定项目的用户描述。我想对这些词进行分类,以消除无用的东西,并对该项目适合的类别(例如技术,运动,音乐)作出有根据的猜测。

我意识到这是一个相当具体的要求,而且我对自然语言处理的知识非常有限。我想知道什么是最好的,如果可能的话,最便宜的计算方法做出这些预测?

我更喜欢在Ruby中这样做,但Python或Java也是可以接受的。

5 个答案:

答案 0 :(得分:3)

至于Python,目前我可以推荐一下:

http://www.nltk.org/

它具有良好的文档,并且在自然语言处理领域具有许多功能。在Ubuntu存储库(python-nltk)中也有一个包,所以它很容易安装和试验。

在大多数情况下,您需要访问高质量的语料库。

答案 1 :(得分:2)

不幸的是Ruby没有高质量的NLP,但是如果你使用JRuby,你可以利用Java的质量NLP,例如:

GATE

LingPipe

OpenNLP

答案 2 :(得分:1)

任何编程语言的顶级语言库之一称为Wordnet。它用于解析文本,分解文本,并确定词性。如果你看到IBM的Watson在电视节目Jeopardy上竞争,你就会看到Wordnet正在运行,因为它是所使用的技术之一。

有一个“WordNet for Ruby”宝石。我没有用它,但我多次使用过Wordnet。希望Wordnet的安装变得更容易,因为它过去很痛苦。

Perl有我使用的Lingua::Wordnet模块。此外,快速搜索“Python + wordnet”会返回几个点击。

答案 3 :(得分:1)

因此,您有一堆文本块要分类到不同的类别。问题与垃圾邮件过滤相同。除spam filter之外,仅将电子邮件分为两类,但您有几个,但相同的原则(Bayes' theorem)仍然适用。 Naive Bayes classifier是解决该问题的最简单且计算要求最低的方法之一。然后,您可以利用该知识并使用更复杂的方法(如神经网络)来进行更准确的分类。一本关于这个主题的好书是Programming Collective Intelligence

另请参阅dANN这是一个具有朴素贝叶斯分类器实现的Java库以及许多其他用于预测分析的工具。这个video about Google Predict显示了如何将句子分类为语言。可以使用相同的方法几乎逐字地对描述进行分类。

答案 4 :(得分:1)

检查此自然语言处理工具包http://en.wikipedia.org/wiki/List_of_natural_language_processing_toolkits列表。 这里没有提到的一些: Weka,Mallet,斯坦福分类器