
Macropodus est une boîte à outils de traitement du langage naturel basé sur l'architecture du réseau Albert + Bilstm + CRF et formé avec un corpus chinois à grande échelle. Il fournira des fonctions NLP communes telles que la segmentation chinoise des mots, l'annotation d'une partie du discours, la reconnaissance des entités de dénomination, l'extraction de mots clés, le résumé de texte, la découverte de mots nouveaux, la similitude du texte, le calculatrice, la conversion numérique, la conversion de pinyin, la conversion traditionnelle et simple, etc.
默认不安装nlg-yongzhuo, 如果需要该功能自行安装;
默认不指定numpy, pandas, scikit-learn版本, 过高或者过低的版本可能不支持
标准版本的依赖包详见 requirements-all.txt
pip install macropodus
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple macropodus
import macropodus
sen_calculate = "23 + 13 * (25+(-9-2-5-2*3-6/3-40*4/(2-3)/5+6*3))加根号144你算得几多"
sen_chi2num = "三千零七十八亿三千零十五万零三百一十二点一九九四"
sen_num2chi = 1994.1994
sen_roman2int = "IX"
sen_int2roman = 132
sent1 = "PageRank算法简介"
sent2 = "百度百科如是介绍他的思想:PageRank通过网络浩瀚的超链接关系来确定一个页面的等级。"
summary = "PageRank算法简介。"
"是上世纪90年代末提出的一种计算网页权重的算法! "
"当时,互联网技术突飞猛进,各种网页网站爆炸式增长。 "
"业界急需一种相对比较准确的网页重要性计算方法。 "
"是人们能够从海量互联网世界中找出自己需要的信息。 "
"百度百科如是介绍他的思想:PageRank通过网络浩瀚的超链接关系来确定一个页面的等级。 "
"Google把从A页面到B页面的链接解释为A页面给B页面投票。 "
"Google根据投票来源甚至来源的来源,即链接到A页面的页面。 "
"和投票目标的等级来决定新的等级。简单的说, "
"一个高等级的页面可以使其他低等级页面的等级提升。 "
"具体说来就是,PageRank有两个基本思想,也可以说是假设。 "
"即数量假设:一个网页被越多的其他页面链接,就越重)。 "
"质量假设:一个网页越是被高质量的网页链接,就越重要。 "
"总的来说就是一句话,从全局角度考虑,获取重要的信。 "
# 分词(词典最大概率分词DAG)
words = macropodus . cut ( summary )
print ( words )
# 新词发现
new_words = macropodus . find ( summary )
print ( new_words )
# 文本摘要
sum = macropodus . summarize ( summary )
print ( sum )
# 关键词抽取
keyword = macropodus . keyword ( summary )
print ( keyword )
# 文本相似度
sim = macropodus . sim ( sent1 , sent2 )
print ( sim )
# tookit
# 计算器
score_calcul = macropodus . calculate ( sen_calculate )
print ( score_calcul )
# 中文数字与阿拉伯数字相互转化
res_chi2num = macropodus . chi2num ( sen_chi2num )
print ( res_chi2num )
res_num2chi = macropodus . num2chi ( sen_num2chi )
print ( res_num2chi )
# 阿拉伯数字与罗马数字相互转化
res_roman2int = macropodus . roman2int ( sen_roman2int )
print ( res_roman2int )
res_int2roman = macropodus . int2roman ( sen_int2roman )
print ( res_int2roman )
# 中文汉字转拼音
res_pinyin = macropodus . pinyin ( summary )
print ( res_pinyin )
# 中文繁简转化
res_zh2han = macropodus . zh2han ( summary )
print ( res_zh2han )
res_han2zh = macropodus . han2zh ( res_zh2han )
print ( res_han2zh )Diverses méthodes de participe de mots
import macropodus
# 用户词典
macropodus . add_word ( word = "斗鱼科" )
macropodus . add_word ( word = "鲈形目" ) # 不持久化, 当前有效
macropodus . save_add_words ( word_freqs = { "喜斗" : 32 , "护卵" : 64 , "护幼" : 132 }) # 持久化保存到用户字典
sent = "斗鱼属,Macropodus (1801),鲈形目斗鱼科的一属鱼类。本属鱼类通称斗鱼。因喜斗而得名。分布于亚洲东南部。中国有2种,即叉尾斗鱼,分布于长江及以南各省;叉尾斗鱼,分布于辽河到珠江流域。其喜栖居于小溪、河沟、池塘、稻田等缓流或静水中。雄鱼好斗,产卵期集草成巢,雄鱼口吐粘液泡沫,雌鱼产卵其中,卵浮性,受精卵在泡沫内孵化。雄鱼尚有护卵和护幼现象。"
# 分词
sents = macropodus . cut_bidirectional ( sent )
print ( "cut_bidirectional: " + " " . join ( sents ))
sents = macropodus . cut_forward ( sent )
print ( "cut_forward: " + " " . join ( sents ))
sents = macropodus . cut_reverse ( sent )
print ( "cut_reverse: " + " " . join ( sents ))
sents = macropodus . cut_search ( sent )
print ( "cut_search: " + " " . join ( sents ))
# DAG
sents = macropodus . cut_dag ( sent )
print ( "cut_dag: " + " " . join ( sents ))La similitude du texte utilise principalement des vecteurs de mots, la similitude du cosinus ou la similitude de Jaccard
import macropodus
sent1 = "叉尾斗鱼是一种观赏性动物"
sent2 = "中国斗鱼生性好斗,适应性强,能在恶劣的环境中生存"
# 文本相似度(similarity)
sents = macropodus . sim ( sent1 , sent2 , type_sim = "total" , type_encode = "avg" )
print ( sents )
sents = macropodus . sim ( sent1 , sent2 , type_sim = "cosine" , type_encode = "single" )
print ( sents )Les méthodes de résumé du texte incluent text_pronouns, text_teaser, word_sign, texttrain, lead3, MMR, LDA, LSI, NMF
import macropodus
summary = "PageRank算法简介。"
"是上世纪90年代末提出的一种计算网页权重的算法! "
"当时,互联网技术突飞猛进,各种网页网站爆炸式增长。 "
"业界急需一种相对比较准确的网页重要性计算方法。 "
"是人们能够从海量互联网世界中找出自己需要的信息。 "
"百度百科如是介绍他的思想:PageRank通过网络浩瀚的超链接关系来确定一个页面的等级。 "
"Google把从A页面到B页面的链接解释为A页面给B页面投票。 "
"Google根据投票来源甚至来源的来源,即链接到A页面的页面。 "
"和投票目标的等级来决定新的等级。简单的说, "
"一个高等级的页面可以使其他低等级页面的等级提升。 "
"具体说来就是,PageRank有两个基本思想,也可以说是假设。 "
"即数量假设:一个网页被越多的其他页面链接,就越重)。 "
"质量假设:一个网页越是被高质量的网页链接,就越重要。 "
"总的来说就是一句话,从全局角度考虑,获取重要的信。 "
# 文本摘要(summarize, 默认接口)
sents = macropodus . summarize ( summary )
print ( sents )
# 文本摘要(summarization, 可定义方法, 提供9种文本摘要方法, 'lda', 'mmr', 'textrank', 'text_teaser')
sents = macropodus . summarization ( text = summary , type_summarize = "lda" )
print ( sents )Une nouvelle découverte de mots utilise principalement des solutions telles que la solidification, l'entropie gauche, l'entropie droite, la fréquence des mots, etc., et le considère de manière approfondie
import macropodus
summary = "PageRank算法简介。"
"是上世纪90年代末提出的一种计算网页权重的算法! "
"当时,互联网技术突飞猛进,各种网页网站爆炸式增长。 "
"业界急需一种相对比较准确的网页重要性计算方法。 "
"是人们能够从海量互联网世界中找出自己需要的信息。 "
"百度百科如是介绍他的思想:PageRank通过网络浩瀚的超链接关系来确定一个页面的等级。 "
"Google把从A页面到B页面的链接解释为A页面给B页面投票。 "
"Google根据投票来源甚至来源的来源,即链接到A页面的页面。 "
"和投票目标的等级来决定新的等级。简单的说, "
"一个高等级的页面可以使其他低等级页面的等级提升。 "
"具体说来就是,PageRank有两个基本思想,也可以说是假设。 "
"即数量假设:一个网页被越多的其他页面链接,就越重)。 "
"质量假设:一个网页越是被高质量的网页链接,就越重要。 "
"总的来说就是一句话,从全局角度考虑,获取重要的信。 "
# 新词发现(findword, 默认接口)
sents = macropodus . find ( text = summary , use_type = "text" , use_avg = False , use_filter = False , use_output = True , freq_min = 2 , len_max = 5 , entropy_min = 2.0 , aggregation_min = 3.2 )
print ( sents )L'extraction de mots clés utilise TextTrank, la construction de la relation de bord: 1. Vector de construction de vecteur de mot; 2. Score de bord de calcul de la similitude en cosinus
import macropodus
sent = "斗鱼属,Macropodus (1801),鲈形目斗鱼科的一属鱼类。本属鱼类通称斗鱼。因喜斗而得名。分布于亚洲东南部。中国有2种,即叉尾斗鱼,分布于长江及以南各省;叉尾斗鱼,分布于辽河到珠江流域。其喜栖居于小溪、河沟、池塘、稻田等缓流或静水中。雄鱼好斗,产卵期集草成巢,雄鱼口吐粘液泡沫,雌鱼产卵其中,卵浮性,受精卵在泡沫内孵化。雄鱼尚有护卵和护幼现象。"
# 关键词(keyword)
sents = macropodus . keyword ( sent )
print ( sents ) import macropodus
summary = "美丽的广西是我国华南地区的一颗璀璨的明珠,山清水秀生态美,风生水起万象新。"
res_ner = macropodus . ner ( summary )
print ( res_ner )
res_ners = macropodus . ners ([ summary ])
print ( res_ners ) import macropodus
summary = "美丽的广西是我国华南地区的一颗璀璨的明珠,山清水秀生态美,风生水起万象新。"
res_postag = macropodus . postag ( summary )
print ( res_postag )
res_postags = macropodus . postags ([ summary ])
print ( res_postags )Les outils comprennent la calculatrice scientifique, la conversion chinoise traditionnelle simplifiée chinoise, la conversion numérique arabe-chinoise, la conversion numérique romaine, la conversion numérique arabe, le pinyin chinois
import macropodus
sen_calculate = "23 + 13 * (25+(-9-2-5-2*3-6/3-40*4/(2-3)/5+6*3))加根号144你算得几多"
sen_chi2num = "三千零七十八亿三千零十五万零三百一十二点一九九四"
sen_num2chi = 1994.1994
sen_roman2num = "IX"
sen_num2roman = 132
# tookit, 科学计算器
score_calcul = macropodus . calculate ( sen_calculate )
print ( score_calcul )
# tookit, 中文数字转阿拉伯
res_chi2num = macropodus . chi2num ( sen_chi2num )
print ( res_chi2num )
# tookit, 阿拉伯数字转中文
res_num2chi = macropodus . num2chi ( sen_num2chi )
print ( res_num2chi )
# tookit, 阿拉伯数字转罗马数字
res_roman2num = macropodus . roman2num ( sen_roman2num )
print ( res_roman2num )
# tookit, 罗马数字转阿拉伯数字
res_num2roman = macropodus . num2roman ( sen_num2roman )
print ( res_num2roman )
# 中文汉字转拼音
res_pinyin = macropodus . pinyin ( summary )
print ( res_pinyin )
# 中文繁体转简体
res_zh2han = macropodus . zh2han ( summary )
print ( res_zh2han )
# 中文简体转繁体
res_han2zh = macropodus . han2zh ( res_zh2han )
print ( res_han2zh )Pour citer ce travail, vous pouvez vous référer au projet GitHub actuel. Par exemple, avec Bibtex:
@misc{Macropodus,
howpublished = {url{https://github.com/yongzhuo/Macropodus}},
title = {Macropodus},
author = {Yongzhuo Mo},
publisher = {GitHub},
year = {2020}
}