化妆品排行榜
  1. 首页 >
  2. 美妆资讯 >
  3. 美妆 >
  1. 支持53种语言预训练模型,斯坦福发布全新NLP工具包StanfordNLP

美妆资讯
支持53种语言预训练模型,斯坦福发布全新NLP工具包StanfordNLP
2023-08-05
今日,Stanford NLP 团队发布了包含 53 种语言预训练模型的自然语言处理工具包 StanfordNLP,该工具包支持 Python 3.6 及之后版本,并基于 PyTorch,支持多种语言的完整文本分析管道,包括分词、词性标注、词形归并和依存关系解析,此外它还提供了与 CoreNLP 的 Python 接口。

Github: //p1-tt.byteimg.com/origin/pgc-image/c44f243b2d4a4f629e9684f40cd22850.jpg" style="width: 650px;">

论文地址://p1-tt.byteimg.com/origin/pgc-image/b3b76fe8174e4ce7b2fcef5b7240dc9b.jpg" style="width: 650px;">

表 1:测试集上的评估结果(F1),仅适用于所有 treebank 及大型 treebank 测试集。对于所有指标上的每一组结果,研究者将其与来自参照系统的结果进行对比。参照系统是指在那个指标上当前性能最好的系统。

安装和使用

设置

StanfordNLP 支持 Python 3.6 及之后版本。推荐从 PyPI 中安装 StanfordNLP。如果已经安装了 pip,运行以下命令:

pip install stanfordnlp\n

这有助于解决 StanfordNLP 的所有依赖项,例如 PyTorch 1.0.0 及以上版本。

或者,你还可以从该 git repo 中安装 StanfordNLP,这样你可以更加灵活地基于 StanfordNLP 开发,以及训练自己的模型。运行以下命令:

git clone git@github.com:stanfordnlp/stanfordnlp.gitcd stanfordnlp\npip install -e .\n

运行 StanfordNLP

启动神经网络管道

要想运行第一个 StanfordNLP pipeline,只需在 Python 交互式解释器中进行以下步骤:

>>> import stanfordnlp>>> stanfordnlp.download('en') # This downloads the English models for the neural pipeline>>> nlp = stanfordnlp.Pipeline() # This sets up a default neural pipeline in English>>> doc = nlp("Barack Obama was born in Hawaii. He was elected president in 2008.")>>> doc.sentences[0].print_dependencies()\n

最后一个命令将输出输入字符串中第一个句子中的单词,以及在句子的通用依存解析中控制该单词的单词索引、单词之间的依赖关系。输出如下:

('Barack', '4', 'nsubj:pass')\n('Obama', '1', 'flat')\n('was', '4', 'aux:pass')\n('born', '0', 'root')\n('in', '6', 'case')\n('Hawaii', '4', 'obl')\n('.', '4', 'punct')\n

注意:如果你遇到了 OSError: [Errno 22] Invalid argument 这样的问题,很可能是因为 Python 的问题。推荐使用 Python 3.6.8 及之后版本和 Python 3.7.2 及之后版本。

StanfordNLP 还提供多语言 demo 脚本,展示了如何在非英语语言中使用 StanfordNLP,如繁体中文。

demo 地址:https://github.com/stanfordnlp/stanfordnlp/blob/master/demo/pipeline_demo.py

python demo/pipeline_demo.py -l zh\n

详见:https://stanfordnlp.github.io/stanfordnlp/installation_download.html#getting-started

访问 Java Stanford CoreNLP Server

除了神经网络管道,该项目还包括一个官方 wrapper,允许使用 Python 代码访问 Java Stanford CoreNLP Server。

初始设置如下:

下载 Stanford CoreNLP 和你想使用语言的模型。将 model jar 放在分发目录中。在 Python 代码中写明 Stanford CoreNLP 的地址:export CORENLP_HOME=/path/to/stanford-corenlp-full-2018-10-05。

该项目提供另一个 demo 脚本,展示如何使用 CoreNLP 客户端以及如何从中提取不同的标注。

demo 地址:https://github.com/stanfordnlp/stanfordnlp/blob/master/demo/corenlp.py

神经网络管道中的模型

该项目目前提供 CoNLL 2018 Shared Task 中所有 treebank 的模型。模型下载和使用说明详见:

https://stanfordnlp.github.io/stanfordnlp/installation_download.html#models-for-human-languages。

批处理以最大化 Pipeline 速度

为了最大化速度,对文档进行批量处理是必要的。一次仅对一个句子运行 for loop 太慢了。最好的方法是将文档串联到一起,每个文档由空白行分割(即两个换行符\\n\\n)。分词器会将空白行识别为断句。目前,研究者正在积极寻求改善多文档处理。

训练自己的神经网络管道

该库中的所有神经模块,包括分词器、多词标记 (MWT) 扩展器、POS/形态特征标注器、词形归并和依存解析器,都可以用你自己的 CoNLL-U 格式数据来训练。目前,该库还不支持通过 Pipeline 接口训练模型。因此,为了训练你自己的模型,你要 clone 这个 git repo,然后从源代码进行设置。

如果想详细了解如何一步步训练和评估自己的模型,请参考以下链接:https://stanfordnlp.github.io/stanfordnlp/training.html

版权声明:CosMeDna所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系删除!

本文链接://www.cosmedna.com/article/124344754.html