Macropodus
v0.0.7

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 ))텍스트 유사성은 주로 단어 벡터, 코사인 유사성 또는 자크 카드 유사성을 사용합니다.
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, 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 )새로운 단어 발견은 주로 응고, 왼쪽 엔트로피, 오른쪽 엔트로피, 단어 주파수 등과 같은 솔루션을 사용하여 포괄적으로 고려합니다.
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 )키워드 추출은 TextRank, Edge 관계 구성을 사용합니다. 1. Word Vector Construction Sentence Vector; 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}
}