
Macropodus هي مجموعة أدوات معالجة اللغة الطبيعية تعتمد على بنية شبكة Albert+BILSTM+CRF وتدريبها مع مجموعة صينية واسعة النطاق. سيوفر وظائف NLP شائعة مثل تجزئة الكلمات الصينية ، وشرح توضيح جزء من الكلام ، والتعرف على كيان التسمية ، واستخراج الكلمات الرئيسية ، وملخص النص ، واكتشاف الكلمات الجديدة ، وتشابه النص ، والآلة الحاسبة ، والتحويل العددي ، وتحويل بينين ، والتحويل التقليدي والبسيط ، وما إلى ذلك.
默认不安装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 )أساليب النعت الكلمات المختلفة
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 ))يستخدم تشابه النص بشكل أساسي متجهات الكلمات أو تشابه جيب التمام أو تشابه 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 )تتضمن طرق ملخص النص text_pronouns ، text_teaser ، word_sign ، textRain ، 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 )يستخدم اكتشاف الكلمات الجديد بشكل أساسي حلولًا مثل التصلب ، والإنتروبيا اليسرى ، والإنتروبيا اليمنى ، وتردد الكلمات ، وما إلى ذلك ، ويعتبره بشكل شامل ذلك
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 )يستخدم استخراج الكلمات الرئيسية TextTrank ، بناء العلاقة الحافة: 1. 2. جيب التمام.
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 )وتشمل الأدوات الآلة الحاسبة العلمية ، التحويل الصيني الصيني التقليدي ، التحويل الرقمي العربي الصيني ، التحويل الرقمي الروماني ، التحويل العربي الرقمي ، pinyin الصينية
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 )للإشارة إلى هذا العمل ، يمكنك الرجوع إلى مشروع GitHub الحالي. على سبيل المثال ، مع bibtex:
@misc{Macropodus,
howpublished = {url{https://github.com/yongzhuo/Macropodus}},
title = {Macropodus},
author = {Yongzhuo Mo},
publisher = {GitHub},
year = {2020}
}