设为首页收藏本站

NLP Code Studio

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2424|回复: 3

Deep-NLP学习框架

[复制链接]

该用户从未签到

600

主题

669

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
15406
发表于 2017-3-26 19:40:34 | 显示全部楼层 |阅读模式
https://github.com/rockingdingo/deepnlp

Tutorial
Set Coding

设置编码 For python2, the default coding is ascii not unicode, use future module to make it compatible with python3

#coding=utf-8
from __future__ import unicode_literals # compatible with python3 unicode
Download pretrained models

下载预训练模型 If you install deepnlp via pip, the pre-trained models are not distributed due to size restriction. You can download full models for 'Segment', 'POS' en and zh, 'NER' zh, 'Textsum' by calling the download function.

import deepnlp
# Download all the modules
deepnlp.download()

# Download only specific module
deepnlp.download('segment')
deepnlp.download('pos')
deepnlp.download('ner')
deepnlp.download('textsum')
Segmentation

分词模块

#coding=utf-8
from __future__ import unicode_literals

from deepnlp import segmenter

text = "我刚刚在浙江卫视看了电视剧老九门,觉得陈伟霆很帅"
segList = segmenter.seg(text)
text_seg = " ".join(segList)

print (text.encode('utf-8'))
print (text_seg.encode('utf-8'))

#Results
#我 刚刚 在 浙江卫视 看 了 电视剧 老九门 , 觉得 陈伟霆 很 帅
POS

词性标注

#coding:utf-8
from __future__ import unicode_literals

import deepnlp
deepnlp.download('pos')

## English Model
from deepnlp import pos_tagger
tagger = pos_tagger.load_model(lang = 'en')  # Loading English model, lang code 'en', English Model Brown Corpus

text = "I want to see a funny movie"
words = text.split(" ")     # unicode
print (" ".join(words).encode('utf-8'))

tagging = tagger.predict(words)
for (w,t) in tagging:
    str = w + "/" + t
    print (str.encode('utf-8'))
   
#Results
#I/nn want/vb to/to see/vb a/at funny/jj movie/nn

## Chinese Model
from deepnlp import segmenter
from deepnlp import pos_tagger
tagger = pos_tagger.load_model(lang = 'zh') # Loading Chinese model, lang code 'zh', China Daily Corpus

text = "我爱吃北京烤鸭"
words = segmenter.seg(text) # words in unicode coding
print (" ".join(words).encode('utf-8'))

tagging = tagger.predict(words)  # input: unicode coding
for (w,t) in tagging:
    str = w + "/" + t
    print (str.encode('utf-8'))

#Results
#我/r 爱/v 吃/v 北京/ns 烤鸭/n
NER

命名实体识别

#coding:utf-8
from __future__ import unicode_literals

# Download pretrained NER model
import deepnlp
deepnlp.download('ner')

from deepnlp import segmenter
from deepnlp import ner_tagger
tagger = ner_tagger.load_model(lang = 'zh') # Loading Chinese NER model

text = "我爱吃北京烤鸭"
words = segmenter.seg(text)
print (" ".join(words).encode('utf-8'))

tagging = tagger.predict(words)
for (w,t) in tagging:
    str = w + "/" + t
    print (str.encode('utf-8'))

#Results
#我/nt 爱/nt 吃/nt 北京/p 烤鸭/nt
Pipeline

#coding:utf-8
from __future__ import unicode_literals

from deepnlp import pipeline
p = pipeline.load_model('zh')

#Segmentation
text = "我爱吃北京烤鸭"
res = p.analyze(text)

print (res[0].encode('utf-8'))
print (res[1].encode('utf-8'))
print (res[2].encode('utf-8'))

words = p.segment(text)
pos_tagging = p.tag_pos(words)
ner_tagging = p.tag_ner(words)

print (pos_tagging.encode('utf-8'))
print (ner_tagging.encode('utf-8'))
Textsum

自动文摘

See details: README

Textrank

重要句子抽取

See details: README

TextCNN (WIP)

文档分类

Train your model

自己训练模型 ###Segment model See instructions: README

###POS model See instructions: README

###NER model See instructions: README

###Textsum model See instructions: README

Web API Service

www.deepnlp.org provides free web API service for common NLP modules of sentences and paragraphs. The APIs are RESTful and based on pre-trained tensorflow models. Chinese language is now supported.

RESTful API
Segmentation: http://www.deepnlp.org/api/v1.0/segment/?lang=zh&text=我爱吃北京烤鸭
POS: http://www.deepnlp.org/api/v1.0/pos/?lang=zh&text=我爱吃北京烤鸭
NER: http://www.deepnlp.org/api/v1.0/ner/?lang=zh&text=我爱吃北京烤鸭
Pipeline: http://www.deepnlp.org/api/v1.0/ ... ;annotators=segment,pos,ner&text=我爱吃北京烤鸭
Testing API from Browser, Need to log in first

image

Calling API from python

See ./deepnlp/test/test_api_v1_module.py for more details.

#coding:utf-8
from __future__ import unicode_literals

import json, requests, sys, os
if (sys.version_info>(3,0)): from urllib.parse import quote
else : from urllib import quote

from deepnlp import api_service
login = api_service.init()          # registration, if failed, load default empty login {} with limited access
conn = api_service.connect(login)   # save the connection with login cookies

# Sample URL
# http://www.deepnlp.org/api/v1.0/ ... ;annotators=segment,pos,ner&text=我爱吃上海小笼包

# Define text and language
text = ("我爱吃上海小笼包").encode("utf-8")  # convert text from unicode to utf-8 bytes

# Set up URL for POS tagging
url_pos = 'http://www.deepnlp.org/api/v1.0/pos/?"+ "lang=" + quote('zh') + "&text=" + quote(text)
web = requests.get(url_pos, cookies = conn)
tuples = json.loads(web.text)
print (tuples['pos_str'].encode('utf-8'))    # POS json {'pos_str', 'w1/t1 w2/t2'} return string
中文简介
deepnlp项目是基于Tensorflow平台的一个python版本的NLP套装, 目的在于将Tensorflow深度学习平台上的模块,结合 最新的一些算法,提供NLP基础模块的支持,并支持其他更加复杂的任务的拓展,如生成式文摘等等。

NLP 套装模块

分词 Word Segmentation/Tokenization
词性标注 Part-of-speech (POS)
命名实体识别 Named-entity-recognition(NER)
自动生成式文摘 Textsum (Seq2Seq-Attention)
关键句子抽取 Textrank
文本分类 Textcnn (WIP)
可调用 Web Restful API
计划中: 句法分析 Parsing
算法实现

分词: 线性链条件随机场 Linear Chain CRF, 基于CRF++包来实现
词性标注: 单向LSTM/ 双向BI-LSTM, 基于Tensorflow实现
命名实体识别: 单向LSTM/ 双向BI-LSTM/ LSTM-CRF 结合网络, 基于Tensorflow实现
预训练模型

中文: 基于人民日报语料和微博混合语料: 分词, 词性标注, 实体识别
API 服务

http://www.deepnlp.org 出于技术交流的目的, 提供免费API接口供文本和篇章进行深度学习NLP的分析, 简单注册后就可以使用。 API符合RESTful风格, 内部是基于tensorflow预先训练好的深度学习模型。具体使用方法请参考博客: http://www.deepnlp.org/blog/tutorial-deepnlp-api/

API目前提供以下模块支持:

分词: http://www.deepnlp.org/api/v1.0/segment/?lang=zh&text=我爱吃北京烤鸭
词性标注: http://www.deepnlp.org/api/v1.0/pos/?lang=zh&text=我爱吃北京烤鸭
命名实体识别: http://www.deepnlp.org/api/v1.0/ner/?lang=zh&text=我爱吃北京烤鸭
Pipeline: http://www.deepnlp.org/api/v1.0/ ... ;annotators=segment,pos,ner&text=我爱吃北京烤鸭
安装说明
需要

CRF++ (>=0.54) 可以从 https://taku910.github.io/crfpp/ 下载安装
Tensorflow(1.0) 这个项目的Tensorflow函数会根据最新Release更新,目前支持Tensorflow 1.0版本,对于老版本的Tensorflow(<=0.12.0), 请使用 deepnlp <=0.1.5版本, 更多信息请查看 RELEASE.md
Pip 安装

    pip install deepnlp
从源码安装, 下载deepnlp-0.1.6.tar.gz文件: https://pypi.python.org/pypi/deepnlp
    # linux, run the script:
    tar zxvf deepnlp-0.1.6.tar.gz
    cd deepnlp-0.1.6
    python setup.py install
Reference
CRF++ package: https://taku910.github.io/crfpp/#download
Tensorflow: https://www.tensorflow.org/
Word Segmentation Using CRF++ Blog: http://www.52nlp.cn/%E4%B8%AD%E6 ... %E6%B3%A8%E6%B3%954
Blogs http://www.deepnlp.org/blog/
回复

使用道具 举报

该用户从未签到

0

主题

1

帖子

141

积分

注册会员

Rank: 2

积分
141
发表于 2017-6-22 16:37:36 | 显示全部楼层
顶,楼主这个论坛干货很多,应当被更多的人看到~
我发现大部分的帖子都是楼主自己发的,倒不如搞成一个博客,可能更灵活方便~现在这个UI。。有点十年前的风格。。
回复 支持 1 反对 0

使用道具 举报

该用户从未签到

1

主题

31

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
发表于 2017-3-28 14:52:09 | 显示全部楼层
试一试,最近也在进阶tensorflow
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2017-12-28 22:48
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    25

    帖子

    78

    积分

    注册会员

    Rank: 2

    积分
    78
    发表于 2017-12-28 22:37:46 | 显示全部楼层
    这么给力的论坛发现完了,早买到书就好了!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表