mlang client
Project description
说明
mlang是一个NLP处理平台,使用它可以完成NLP常见的任务。它是mlang server的客户端。
安装
pip install mlang
使用
基本配置
from mlang_client import mclient
mclient.SERVER_URL = 'http://mlang.meizu.com'
mclient.VERSION = 'v1.0
基础功能
from mlang_client.mclient import MLang
- 分句
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来标识。
from mlang_client.mclient import MCorpus
- 上传语料
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标识 词表可在本地构建然后上传到服务器,也可以直接通过语料在服务器上进行构建。
from mlang_client.mclient import MVocab
- 列出所有词表
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())
情感分析
构建情感词库、分析一段文本的情感/观点
from mlang_client.mclient import MSentimentAnalyser
- 计算情感分值
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).data
for opinion in opinions:
print(opinion['tmodifiers'], opinion['target']['token'], opinion['smodifiers'], opinion['sentiment']['token'], opinion['orientation'])
文本/单词表征
将文本/单词以向量的形式表示
from mlang.config import DEFAULT_W2V
from mlang.config import DEFAULT_D2V
from mlang.config import DEFAULT_VOCAB
from mlang_client.mclient import MWordRepresentation
from mlang_client.mclient import MTextRepresentation
- 单词表征
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)
文本/单词聚类
from mlang_client.mclient import MWordCluster
from mlang_client.mclient import MTextCluster
- 单词聚类
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来标识
from mlang_client.mclient import MLM
- 列出所有的语言模型
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模型
from mlang_client.mclient import MWord2Vec
- 列出所有模型
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模型
from mlang_client.mclient import MDoc2Vec
- 列出所有模型
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模型
from mlang_client.mclient import MSeq2Seq
- 列出所有模型
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).data
tokens = txt.split()
seqs = result.split()
for i, token in enumerate(tokens):
print(token, seqs[i])
License
Copyright (c) 2017-2018 lishouguang. Licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mlang-0.1.15.tar.gz
(17.0 kB
view details)
File details
Details for the file mlang-0.1.15.tar.gz
.
File metadata
- Download URL: mlang-0.1.15.tar.gz
- Upload date:
- Size: 17.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c25550b713fc279edb80154709bf60f1131dbfcc32a32b343ae1b69cccaf789 |
|
MD5 | 40d3af71bdeaf11ac0e9ecf591b750c3 |
|
BLAKE2b-256 | 0b54e14ae9072f211b1a89afa971c08754d6da4161f226fb07d40058886de709 |