Package: mlang
说明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])LicenseCopyright (c) 2017-2018 lishouguang.
Licensed under theMIT License.