长客户端

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.

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

推荐PyPI第三方库


热门话题
java在验证检查中改进构建器模式?   java如何定义一个依赖项来获取快照?   java Javafx webview在运行时不显示dashplotly应用程序   java Android kotlin单元测试用例。。?   java Android:SurfaceView,为什么要使用不同的线程   Android/Java“org.apache.http.ProtocolException”,http头应答有问题   反射如何确定类成员是否是静态的以及Java中的字段   java设置EditText以接受双值的问题   类加载器如何使用类加载器将jar从我的网站加载到java应用程序的脚本中   java GWT HTMLTable colaspan功能   java无法删除/重命名文件   java Navigableset vs Navigablemap   php中java加密方法的转换   java为什么加载我的共享对象文件会在Netbeans 8.2中出现“未满足链接”错误?   java JAXRS CXF异常包装   java程序在If语句之后执行Else语句   java将对象转换为JAXBElement<Object>