NLTK与斯坦福NLP

RDa*_*ata 21 python nlp nltk stanford-nlp

我最近开始使用NLTK工具包来使用Python创建一些解决方案.

我听说很多关于使用斯坦福NLP的社区活动.谁能告诉我NLTK和斯坦福NLP有什么区别?它们是2个不同的库吗?我知道NLTK有一个与斯坦福NLP的接口,但是任何人都可以对一些基本差异或更详细的内容有所了解.

可以使用Python使用stanford NLP吗?

use*_*786 27

谁能告诉我NLTK和斯坦福NLP有什么区别?它们是2个不同的库吗?我知道NLTK有一个与Stanford NLP的接口,但是任何人都可以对一些基本差异或更详细的内容有所了解.

(我假设你的意思是" 斯坦福CoreNLP ".)

它们是两个不同的库.

  • Stanford CoreNLP是用Java编写的
  • NLTK是一个Python库

主要功能区别在于NLTK具有与其他版本NLP工具的多个版本或接口,而Stanford CoreNLP仅具有其版本.NLTK还支持安装第三方Java项目,甚至包括在wiki上安装一些Stanford NLP软件包的说明.

两者都对英语有很好的支持,但如果你正在处理其他语言:

也就是说,哪一个"最好"将取决于您的具体应用和所需的性能(您使用的功能,语言,词汇,所需的速度等).

可以使用Python使用Stanford NLP吗?

是的,有许多接口和软件包可以在Python中使用Stanford CoreNLP (独立于NLTK).

  • NLTK是它自己的NLP软件包,恰好可以为Stanford NLP软件包提供接口.它不是"基于"斯坦福CoreNLP或类似的东西 - 除非NLTK明确表示功能/模块/等是斯坦福NLP的接口,但事实并非如此. (5认同)

0x5*_*050 6

选择将取决于您的用例。NLTK非常适合预处理标记文本。它还包括一个不错的POS标记器。仅用于标记化/ POS标记的Standford Core NLP有点过大,因为Standford NLP需要更多资源。
但是一个根本的区别是,您不能解析语法依赖NLTK开箱即用。如果文本域不受限制,则需要为此指定一个语法,这可能非常繁琐。Standford NLP为通用文本提供了一个概率分析器,作为可下载的模型,它非常准确。它还内置了NER(命名实体识别)等。我也建议您看一下Spacy,它是用python编写的,比CoreNLP 易于使用且速度更快

  • Spacy建议+1。目前它可能是 Python 的 NLP 库。它有多种语言版本,但任何使用它的人都应该小心弱模型(例如,葡萄牙语的 POS 标记非常差)。 (3认同)

Tan*_*pta 5

看来您是 NLP 新手。

我最近开始使用NLTK工具包

如果您确实是 NLP 新手,那么最好从简单开始。所以理想情况下你应该从 nltk 开始。我对自然语言处理比较陌生(几个月前)。我可以确认,对于初学者来说,nltk 更好,因为它有一本很棒的免费在线书籍,可以帮助初学者快速学习。

一旦您感到舒服并且确实有问题需要解决,请查看斯坦福核心 NLP,看看它是否能更好地解决您的问题。

如果您想坚持使用 NLTK,还可以访问NLTK中的斯坦福 CoreNLP API 。

现在来说说相同点和不同点:

谁能告诉我 NLTK 和斯坦福 NLP 有什么区别?他们是两个不同的图书馆吗?

两者都提供自然语言处理。斯坦福核心 NLP 的一些最有用的部分包括词性标注器、命名实体识别器、情感分析和模式学习。

命名实体识别器在斯坦福核心 NLP 中效果更好。斯坦福核心 NLP 更擅长语法功能,例如选择主语、宾语、预测(这就是我从 nltk 切换到斯坦福核心 NLP 的部分原因)。正如@user812786所说,NLTK与其他版本的NLP工具有多个接口。NLTK也更适合学习NLP。如果您需要使用多个语料库,请使用 NLTK,因为您可以轻松访问大量文本语料库和词汇资源。两者都有 POS 标签和情感分析。

斯坦福NLP可以用Python来使用吗?

是的,一点没错。您可以使用StanfordNLP,它是一个Python自然语言分析包,能够调用CoreNLP Java包。还有多个使用斯坦福 CoreNLP 服务器的Python 包