轻型NLP注释器

ccg-nlp的Python项目详细描述


#COGCOMP NLPY
[![构建状态](https://semaphoreci.com/api/v1/projects/dc68ab4d-d1b7-4405-adca-b0c6af2e1aa0/1223617/badge.svg)(https://semaphoreci.com/danyaljj/sioux-2)

轻松地在python中的文档上运行nlp工具,如语音标记、分块、命名实体识别等!

安装



1。确保[您的系统上有"pip](https://pip.pypa.io/en/stable/installing/)。
2。确保已安装cython:

`` bash
pip安装cython
````

>3。安装:

`` bash
pip安装ccg-nlpy
````

4。享受!

这是位于[PYPI网站](https://pypi.python.org/pypi/ccg nlpy)的项目页面。

强烈建议使用python 3.3+

此包使用``utf-8``编码。
在python 2.6+中,所有字符串都存储为``unicode``对象。
在python3.3+中,所有字符串都存储为``str``对象。


《入门》
下面是一个示例用法你运行我们的系统:

``python
from ccg_nlpy import remote_pipeline

doc=pipeline.doc("你好,你好。我做得很好"
print(doc.get_lemma)将产生(hello)hello(,)(how)(how)(be)(you you)(你好)。(i i)(be am)(do do)(罚款)
打印(doc.get_pos)将生成(uh hello)(wrb how)(vbp are)(prp you)。(prp i)(vbp am)(vbg doing)(jj fine)
````


默认/简单用法有一些限制,下一节将对此加以说明。请参阅下一节

**API文档:**这是我们的"Pipeliner"模块的[API文档](http://cogcomp.cs.illinois.edu/software/doc/ccg-nlpy/pipeliner.m.html)。

以不同的形式。下图总结了这些方法:

![](https://user images.githubusercontent.com/2441454/27004781-963ae9e0-4ddd-11e7-9864-b96a52df062b.png)




接下来,我们将详细介绍每一项:

远程管道
在此设置中,您可以向远程计算机发送批注请求。因此,本地计算机上没有太多内存负担。相反,所有繁重的工作都在远程服务器上。

**默认远程服务器:**这是默认设置。请求被发送到我们的远程服务器,因此需要网络连接。这个选项是为了演示事情是如何工作的,但是对于您的大型实验来说它不是一个可行的解决方案,因为我们限制了对服务器的查询数量(当前限制是每天*100个查询*)。如果您是一个繁忙的nlp用户,您应该使用其他任何选项。

**启动自己的(远程)服务器:**如果您有一台大型(远程)计算机,这可能是一个不错的选择。
您必须阅读[管道项目文档](https://github.com/cogcomp/cogcomp nlp/tree/master/pipeline using pipeline webserver)中有关如何安装管道服务器的说明。总而言之:

1.克隆我们[COGCOMP NLP ](HTTPS://GITHUBCOM/COGCOMP/COGCOMP-NLP/)Java项目。
2。运行"pipeline/scripts/runwebserver.sh"启动服务器。
3。当您看到"server:xxx-started@xxxxx ms"时,服务器已启动并正在运行:

在确保服务器正在运行后,我们可以对其进行python调用:

``python
rlname.com:8080')
构造函数声明:remotepipeline(server_api=none,file_name=none)
"server_api"是作为字符串的服务器地址。例如:http://www.fancyurlname.com:8080
"文件名"是用于设置管道的配置文件(可选),有关详细信息,请参阅后一节
```

**注意:**此工具基于cogcomp的[管道项目](https://github.com/cogcomp/cogcomp nlp/tree/master/pipeline>;)。实际上,管道中包含的注释器应该可以在这里访问。

本地管道

在此设置中,系统将下载本地运行管道所需的经过培训的模型和文件。因为所有东西都在您的机器上运行,所以可能需要大量内存(数量取决于您使用的注释)。如果您有一台大型计算机(即内存>;15GB)供您使用,这可能是一个不错的选择。
本地管道还提供了处理预标记文本的功能。

要下载模型,请运行以下命令:
``bash
python-m ccg\u nlpy下载
``

这将把模型文件直接下载到`~/.ccg\u nlpy/`.

**注意:**请注意,下载模型需要在计算机上安装maven。如果没有,[这里有一些安装指南](https://maven.apache.org/install.html)。

在本地管道中,注释器被延迟加载;也就是说,在您第一次调用它们之前,它们不会被加载。

``python
从ccg-nlpy导入本地管道
pipeline=local-pipeline.localpipeline()
参数``pretokeized=true``需要传递给``pipeline.doc``函数。
````
来自ccg nlpy import local戋pipeline
pipeline=local戋pipeline.localpipeline()

document=[["嗨","!"],["如何","是","你","?"]]
doc=pipeline.doc(document,pretokenized=true)
````

\在macos中,您可以使用"echo"$java_home来验证它。如果未设置,则可以"export java_home=$(/usr/libexec/java_home)"。如果您使用的是Java版本& gt;8,您可能会收到如下错误:"
错误:CGGYNLPY。LoalAlx管道:错误调用DLOPEN(B'/Lablie/Java/JavaValtualMeals/JDK-0.0.1.JDK/Client/Heal/JRe/lib/Servs/libjvm)Dylib′:B'DLOPEN(/库/爪哇/ JavaVirt)ualmachines/jdk-10.0.1.jdk/contents/home/jre/lib/server/libjvm.dylib,10):找不到映像"```
要解决这个问题,您必须[在您的计算机上安装Java-8](https://gist.github.com/jeoam/a926dbb5145c4d0789c1)并将命令行指向它:`` export java-home=`/usr/libexec/java-home-v 1.8`''。



ne(file_name='path_to_custom_config_file')
````

下面指定默认键和值。如果要使用自定义配置文件,请提供类似格式的文件。



``bash
[remote_pipeline_setting]
api=address_of_the_server示例:http://fancyurlname.com:8080
````

当某些输出(例如从远程管道接收错误500)时,
我们在调用的输出中返回"none"。在处理大型文档时,可能需要检查并明确处理
这一点:

`` python
d=…#文件
p=…#管道
doc=p.doc(d)
如果doc不是none:
确保使用"python-m ccg\u nlpy download"下载了模型本地管道测试可以顺利运行。
2.创建一个原始的python2环境(例如,使用'conda create-n py27 python=2.7 anaconda')。
3。您可能需要在新的python2环境中为pyjnius安装cython(`pip2 install cython`)。
4.在新环境中运行"python setup.py test"。

在提交拉取请求之前,所有测试都应顺利运行。

问题/建议/评论

使用评论或请求。




欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
多线程:当服务器在javasocket中可用时,如何自动重新连接到服务器   java如何从listview适配器调用我的后台服务的公共方法   java中央身份验证服务器体系结构和身份验证流程   我的Java项目的空指针异常   java系统输出到文本字段   java实体外观的swing Gui问题   java JVM消耗100%的CPU   java更改谷歌表单的背景色   java如何在2d数组上使用比较器对用户输入进行排序   从泛型原子引用获取特定类对象的java方法给出了类型错误。有办法解决这个问题吗?   java Hot从netsuite获取上次修改的信用备忘录记录   java libGDX屏幕之间的简单淡入淡出过渡?   java无法注册到textsecure服务器,无法正常工作   java如何使用关键字作为枚举常量   java Eclipse没有从central maven repo下载插件   java Rails/设计不可处理的实体   ImageView背景中的java添加带动画的乐蒂   在java中,我们可以添加到列表中的元素的最大数量是多少?   java | Ultra noob |可以将按键发送到后台窗口吗?