长客户端
mlang的Python项目详细描述
说明
mlang是一个NLP处理平台,使用它可以完成NLP常见的任务。它是mlang server的客户端。
安装
pip install mlang
使用
基本配置
frommlang_clientimportmclientmclient.SERVER_URL='http://mlang.meizu.com'mclient.VERSION='v1.0
基础功能
frommlang_client.mclientimportMLang
- 分句
txt='魅族手机不错的,你觉得呢?'sents=MLang.ssplit(txt)print(sents)sents=MLang.ssplit(txt,impl='re',pattern='[。]')print(sents)sents=MLang.ssplit(txt,impl='ltp')print(sents)
- 分词
txt='魅族手机不错的,你觉得呢?'tokens=MLang.tokenize(txt)print(tokens)tokens=MLang.tokenize(txt,impl='jieba')print(tokens)tokens=MLang.tokenize(txt,impl='fmm')print(tokens)tokens=MLang.tokenize(txt,impl='rmm')print(tokens)
- 词性标记
txt='魅族手机不错的,你觉得呢?'tokens=MLang.pos(txt)print(tokens)tokens=MLang.pos(txt,impl='ltp')print(tokens)tokens=MLang.pos(txt,impl='jieba')print(tokens)tokens=MLang.pos(txt,impl='jieba',revise=True,norm=True)print(tokens)
- 命名实体识别
txt='魅族手机不错的,你觉得呢?'xx=MLang.ner(txt)print(xx)
- 依存句法解析
txt='魅族手机不错的,你觉得呢?'relations=MLang.parse(txt)print(relations)
- 拼音转换
txt='魅族手机不错的,你觉得呢?'pinyins=MLang.hanzi2pinyin(txt)print(pinyins)pinyins='mei zu shou ji bu cuo de , ni jue de ne ?'hanzis=MLang.pinyin2hanzi(pinyins)print(hanzis)
- 简繁转换
txt='魅族手机不错的,你觉得呢?'result=MLang.simplified2traditional(txt)print(result)txt='魅族手機不錯的,你覺得呢?'result=MLang.traditional2simplified(txt)print(result)
语料管理
将本地的语料文件上传到服务器上,使用服务器上的资源对语料进行处理。服务器上的语料通过语料id来标识。
frommlang_client.mclientimportMCorpus
- 上传语料
file='pinglun.min.txt'result=MCorpus.upload('pinglun',file)print(result)
- 列出所有语料
corpus_list=MCorpus.list()print(corpus_list)
- 单个语料信息
corpus=MCorpus.info('c1')print(corpus)
- 删除语料
MCorpus.remove('c')
- 下载语料
MCorpus.download('pinglun','pinglun.c.txt')
词表管理
词表就是一个包含很多词的文件,每个词占一行。 词表保存在服务器上,通过词表id标识 词表可在本地构建然后上传到服务器,也可以直接通过语料在服务器上进行构建。
frommlang_client.mclientimportMVocab
- 列出所有词表
vocab_list=MVocab.list()print(vocab_list)
- 获取单词词表信息
info=MVocab.info('v1')print(info)
- 上传词表
MVocab.upload('xv1','mobile.vocab.txt')
- 删除词表
MVocab.remove('xv1')
- 下载词表
MVocab.download('a1','a1.txt')
- 构建词表
vocabid='xv1'MVocab.build(vocabid,'a1')vocab=MVocab.get(vocabid)print(vocab)print(vocab.words())
情感分析
构建情感词库、分析一段文本的情感/观点
frommlang_client.mclientimportMSentimentAnalyser
- 计算情感分值
txt='魅族手机不错的,你觉得呢?'score=MSentimentAnalyser.score(txt)print(score)is_subject=MSentimentAnalyser.is_subject(txt)print(is_subject)
- 提取评价对象/情感词
terms=MSentimentAnalyser.extract_terms('pinglun',s_seed=['漂亮','不错'])print(terms)
- 提取评价观点
txt='魅族手机不错的,你觉得呢?'opinions=MSentimentAnalyser.extract_opinions(txt,target_vocab_id).dataforopinioninopinions:print(opinion['tmodifiers'],opinion['target']['token'],opinion['smodifiers'],opinion['sentiment']['token'],opinion['orientation'])
文本/单词表征
将文本/单词以向量的形式表示
frommlang.configimportDEFAULT_W2Vfrommlang.configimportDEFAULT_D2Vfrommlang.configimportDEFAULT_VOCABfrommlang_client.mclientimportMWordRepresentationfrommlang_client.mclientimportMTextRepresentation
- 单词表征
vec=MWordRepresentation.represent('手机')print(vec)vec=MWordRepresentation.represent('手机',impl='w2v',w2vid=DEFAULT_W2V)print(vec)vec=MWordRepresentation.represent('手机',impl='onehot',vocabid=DEFAULT_VOCAB)print(vec)
- 单词相似度
sim=MWordRepresentation.similarity('魅族','华为')print(sim)sim=MWordRepresentation.similarity('魅族','华为',w2vid=DEFAULT_W2V)print(sim)
- 文本表征
txt='魅族手机不错的,你觉得呢?'vec=MTextRepresentation.represent(txt)print('default:',vec)vec=MTextRepresentation.represent(txt,impl='w2v',w2vid=DEFAULT_W2V)print('w2v:',vec)vec=MTextRepresentation.represent(txt,impl='d2v',d2vid=DEFAULT_D2V)print('d2v:',vec)vec=MTextRepresentation.represent(txt,impl='vocab',vocabid=DEFAULT_VOCAB)print('vocab:',vec)
- 文本相似度
txt1='魅族手机不错的,你觉得呢?'txt2='华为的手机一般。'sim=MTextRepresentation.similarity(txt1,txt2)print('default:',sim)sim=MTextRepresentation.similarity(txt1,txt2,impl='w2v',w2vid=DEFAULT_W2V)print('w2v:',sim)sim=MTextRepresentation.similarity(txt1,txt2,impl='d2v',d2vid=DEFAULT_D2V)print('d2v:',sim)sim=MTextRepresentation.similarity(txt1,txt2,impl='vocab',vocabid=DEFAULT_VOCAB)print('vocab:',sim)
文本/单词聚类
frommlang_client.mclientimportMWordClusterfrommlang_client.mclientimportMTextCluster
- 单词聚类
result=MWordCluster.fit('xv1')print(result)
- 文本聚类
r=MTextCluster.fit('cc1')print(r)r=MTextCluster.fit('cc1',represent='d2v')print(r)r=MTextCluster.fit('cc1',represent='vocab')print(r)r=MTextCluster.fit('cc1',represent='w2v',n_clusters=3)print(r)
语言模型
训练好的语言模型保存在服务器上,使用id来标识
frommlang_client.mclientimportMLM
- 列出所有的语言模型
lms=MLM.list()print(lms)
- 获得指定语言模型的信息
info=MLM.info('lm1')print(info)
- 预测句子概率
txt='魅族手机不错的,你觉得呢?'prob=MLM.prob(txt)print(prob)txt='魅族手机不错的,你觉呢得?'prob=MLM.prob(txt)print(prob)
- 训练语言模型
MLM.build('lm1','a1')
- 下载语言模型文件
MLM.download('lm1.arpa','lm1.arpa')
- 删除语言模型
MLM.remove('lm1')
Word2vec模型
frommlang_client.mclientimportMWord2Vec
- 列出所有模型
r=MWord2Vec.list()print(r)
- 获得指定模型的信息
r=MWord2Vec.info('w1')print(r)
- 下载模型文件
MWord2Vec.download('w1','w1.w2v.model')
- 构建模型
r=MWord2Vec.build('w1','a1',epochs=20)print(r)
- 删除模型
MWord2Vec.remove('w1')
Doc2vec模型
frommlang_client.mclientimportMDoc2Vec
- 列出所有模型
r=MDoc2Vec.list()print(r)
- 获得指定模型的信息
r=MDoc2Vec.info('d2v1')print(r)
- 删除模型
r=MDoc2Vec.remove('d2v1')print(r)
- 下载模型文件
MDoc2Vec.download('d2v1','d1.d2v.model')
- 构建模型
r=MDoc2Vec.build('d2v1','a1')print(r)
Seq2Seq模型
frommlang_client.mclientimportMSeq2Seq
- 列出所有模型
r=MSeq2Seq.list()print(r)
- 获得指定模型的信息
r=MSeq2Seq.info('s2s1')print(r)
- 删除指定模型
r=MSeq2Seq.remove('s2s2')print(r)
- 下载模型文件
MSeq2Seq.download('s2s2','s2s.model')
- 构建模型
MSeq2Seq.build('s2s2','seq_c1')
- 预测序列
txt='魅族 的 手机 真 不错 运行 很 流畅 外观 很 漂亮'result=MSeq2Seq.predict('sbd',txt).datatokens=txt.split()seqs=result.split()fori,tokeninenumerate(tokens):print(token,seqs[i])
License
Copyright (c) 2017-2018 lishouguang. Licensed under the MIT License.
- 项目
标签: