说明
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.
Metadata
Release files for mlang 0.1.15
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| mlang-0.1.15.tar.gz | 17.0 kB | Without provenance | Details for mlang-0.1.15.tar.gz |
Release files / mlang-0.1.15.tar.gz
| Download URL | mlang-0.1.15.tar.gz |
|---|---|
| Size | 17.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4c25550b713fc279edb80154709bf60f1131dbfcc32a32b343ae1b69cccaf789
|
|
BLAKE2b-256 checksum How to use checksums |
0b54e14ae9072f211b1a89afa971c08754d6da4161f226fb07d40058886de709
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for mlang 0.1.15
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.