コード例 #1
0
ファイル: 1_6_1_parser.py プロジェクト: nice-kai/nlp
from pyltp import *
import re

reload(sys)
sys.setdefaultencoding('utf-8')

sent = '罗马尼亚 的 首都 是 布加勒斯特 。'
words = sent.split(' ')

postagger = Postagger()
postagger.load('E:\\nlp\\ltp-data-v3.3.1\\pos.model')
postags = postagger.postag(words)

parser = Parser()
parser.load("E:\\nlp\\ltp-data-v3.3.1\\parser.model")
arcs = parser.parse(words, postags)

arclen = len(arcs)
conll = ''

for i in xrange(arclen):
    if arcs[i].head == 0:
        arcs[i].relation = 'ROOT'
    conll += '\t' + words[i] + '(' + postags[i] + ')' + '\t' + postags[
        i] + '\t' + str(arcs[i].head) + '\t' + arcs[i].relation + '\n'

print code.coder(conll)
conlltree = DependencyGraph(conll)
tree = conlltree.tree()
tree.draw()
コード例 #2
0
# -*- encoding: utf-8 -*-

import sys
import os
import code
from nltk.tree import Tree
from stanford import *

reload(sys)
sys.setdefaultencoding('utf-8')

os.environ['JAVA_HOME'] = 'C:\\Program Files\\Java\\jdk1.8.0_131\\bin\\java.exe'

root = 'E:/nlp/nltk_data/stanford-corenlp/'
modelpath = root + 'models/lexparser/chinesePCFG.ser.gz'
opttype = 'typedDependencies' # penn typedDependencies

parser = StanfordParser(modelpath,root,opttype)
result = parser.parse('罗马尼亚 的 首都 是 布加勒斯特 。')

print code.coder(result)

#tree = Tree.fromstring(result)

#tree.draw()
コード例 #3
0
ファイル: 1_5_1_ner.py プロジェクト: nice-kai/nlp
# -*- encoding: utf-8 -*-

import sys
import os
import code
from pyltp import *
reload(sys)

sys.setdefaultencoding('utf-8')

sent = '欧洲 东部 的 罗马尼亚 , 首都 是 布加勒斯特 ,也 是 一座 世界性 的 城市。'
words = sent.split(' ')

postagger = Postagger()
postagger.load('E:\\nlp\\ltp-data-v3.3.1\\pos.model')
postags = postagger.postag(words)

recognizer = NamedEntityRecognizer()
recognizer.load('E:\\nlp\\ltp-data-v3.3.1\\ner.model')
netags = recognizer.recognize(words,postags)

for word,postag,netag in zip(words,postags,netags):
	print code.coder(word+"/"+postag+"/"+netag),
	
#结果:
#欧洲/ns/S-Ns 东部/nd/O 的/u/O 罗马尼亚/ns/S-Ns ,/wp/O 首都/n/O 是/v/O 布加勒斯特/ns/S-Ns ,也/d/O 是/v/O 一座/m/O 世界性/n/O 的u/O 城市。/n/O
# O表示非专名词,S-Ns为识别的专名


コード例 #4
0
ファイル: 1_7.py プロジェクト: nice-kai/nlp
wordlist = list(words)
postagger = Postagger()
postagger.load(os.path.join(MODELDIR, 'pos.model'))
postags = postagger.postag(words)

# 对分词和词性标注结果加入到分析器中进行句法解析
parser = Parser()
parser.load(os.path.join(MODELDIR, 'parser.model'))
arcs = parser.parse(words, postags)

# 实体命名识别
recognizer = NamedEntityRecognizer()
recognizer.load(os.path.join(MODELDIR, 'ner.model'))
netags = recognizer.recognize(words, postags)

# 语义角色标注
labeller = SementicRoleLabeller()
labeller.load(os.path.join(MODELDIR, 'srl'))
roles = labeller.label(words, postags, netags, arcs)

# UTF-8转gbk,cmd控制台显示
wordlist_ = code.coderforlist(words)

for role in roles:
    print 'rel:', wordlist_[role.index]  # 谓词
    for arg in role.arguments:
        if arg.range.start != arg.range.end:
            print code.coder(arg.name), ' '.join(
                wordlist_[arg.range.start:arg.range.end])
        else:
            print code.coder(arg.name), wordlist_[arg.range.start]
コード例 #5
0
ファイル: 1_4_1_pos_tag.py プロジェクト: nice-kai/nlp
#encoding=utf-8
import sys
import code
from pyltp import *

sent = '在 包含 问题 的 所有 解 的 解空间树 中'
words = sent.split(" ")
# 词性标注
postagger = Postagger()
#导入词性标注模型
postagger.load("E:\\nlp\\ltp-data-v3.3.1\\pos.model")

postags = postagger.postag(words)

for word,postag in zip(words,postags):
	print code.coder(word)+"/"+postag,

コード例 #6
0
ファイル: 1_4_3_pos_tag.py プロジェクト: nice-kai/nlp
# -*- coding: utf-8 -*-

import sys
import code
from stanford import StanfordPOSTagger

reload(sys)
sys.setdefaultencoding('utf-8')
root = 'E:\\nlp\\nltk_data\\stanford-corenlp\\'
modelpath = root + 'models\\pos-tagger\\chinese-distsim\\chinese-distsim.tagger'
st = StanfordPOSTagger(root, modelpath)
seg_sent = '在 包含 问题 的 所有 解 的 解空间树 中 ,按照 深度优化 搜索 的 策略 , 从 根节点 出发 深度 探索 解空间树'
taglist = st.tag(seg_sent)
print code.coder(taglist)