马来西亚语的自然语言工具包,由 Tensorflow 和 PyTorch 提供支持。
项目描述
马来亚是马来西亚语的自然语言工具包库,由 Tensorflow 和 PyTorch 提供支持。
文档
从 PyPI 安装
$ pip install malaya
它将自动安装除 Tensorflow 和 PyTorch 之外的所有依赖项。所以你可以选择自己的 Tensorflow CPU/GPU 版本和 PyTorch CPU/GPU 版本。
仅支持Python >= 3.6.0、Tensorflow >= 1.15.0和PyTorch >= 1.10。
开发版本
从主分支安装,
$ pip install git+https://github.com/huseinzol05/malaya.git
我们建议使用virtualenv进行开发。
特征
对齐,使用 Eflomal 和预训练的 Transformer 模型的翻译词对齐。
增强,使用同义词词典、Wordvector 或 Transformer-Bahasa 增强任何文本。
选区解析,使用微调的 Transformer-Bahasa 将文本分解为子短语。
Coreference Resolution,使用依赖解析模型查找在文本中引用同一实体的所有表达式。
依赖解析,使用微调的 Transformer-Bahasa 提取句子的依赖解析。
情绪分析,使用微调的 Transformer-Bahasa 检测和识别 6 种不同的文本情绪。
实体识别,旨在使用微调的 Transformer-Bahasa 定位和分类文本中提到的命名实体。
生成器,使用 T5-Bahasa、GPT2-Bahasa 或 Transformer-Bahasa 生成给定上下文的任何文本。
Jawi-to-Rumi,使用 Transformer 从 Jawi 转换为 Rumi。
KenLM,提供简单的界面来加载预训练的 KenLM 马来亚模型。
Keyword Extraction,提供 RAKE、TextRank 和 Attention Mechanism 与 Transformer-Bahasa 的混合。
知识图,使用 T5-Bahasa 生成知识图或从依赖解析模型中解析。
语言检测,使用快速文本和稀疏深度学习模型对马来语(正式和社交媒体)、印度尼西亚(正式和社交媒体)、Rojak 语言和 Manglish 进行分类。
Normalizer,使用本地马来西亚 NLP 研究与 Transformer-Bahasa 的混合来规范任何 bahasa 文本。
Num2Word,从数字转换为基数或序数表示。
释义,使用 T5-Bahasa 和 Transformer-Bahasa 提供抽象释义。
Grapheme-to- Phoneme ,使用 LSTM Seq2Seq 将 Grapheme 转换为Phoneme DBP 或 IPA,并具有最先进的注意力。
词性识别,语法标记是使用微调的 Transformer-Bahasa 在文本中标记单词的过程。
问题答案,使用微调的 Transformer-Bahasa 进行阅读理解。
相关性分析,使用微调的 Transformer-Bahasa 检测和识别文本的相关性。
Rumi-to-Jawi,使用 Transformer 将 Rumi 转换为 Jawi。
情感分析,使用微调的 Transformer-Bahasa 检测和识别文本的极性。
文本相似度,使用微调的 Transformer-Bahasa 为词汇相似度深度语义相似度提供接口。
Spelling Correction,使用马来西亚本地 NLP 研究混合 Transformer-Bahasa 以自动更正任何 bahasa 单词和使用 T5-Bahasa 的 NeuSpell。
Stemmer,使用 BPE LSTM Seq2Seq 和最先进的注意力来进行包括本地语言结构的 Bahasa 词干提取。
主观性分析,使用微调的 Transformer-Bahasa 检测和识别文本的自我观点极性。
Kesalahan Tatabahasa,使用 TransformerTag-Bahasa 修复 kesalahan tatabahasa。
总结,提供 Abstractive T5-Bahasa 和 Extractive 接口,使用 Transformer-Bahasa、skip-thought 和 Doc2Vec。
Tokenizer,提供单词、句子和音节的分词器。
主题建模,提供 Transformer-Bahasa、LDA2Vec、LDA、NMF 和 LSA 接口,便于主题建模和主题可视化。
毒性分析,使用微调的 Transformer-Bahasa 检测和识别 27 种不同的文本毒性模式。
Transformer,提供简单的界面来加载预训练语言马来亚模型。
翻译,使用 Transformer 为 EN 到 MS 和 MS 到 EN 提供神经机器翻译。
Word2Num,从基数或序数表示转换为数字。
Word2Vec,提供预训练的 bahasa wikipedia 和 bahasa news Word2Vec,具有简单的界面和可视化。
Zero-shot 分类,提供 Zero-shot 分类接口,使用 Transformer-Bahasa 识别文本,无需任何标记的训练数据。
混合 8 位量化,为所有模型提供混合 8 位量化,以减少高达 2 倍的推理时间和高达 4 倍的模型大小。
Longer Sequences Transformer,为更长的序列任务提供 BigBird、BigBird + Pegasus 和 Fastformer。
预训练模型
马来亚也发布了 Bahasa 预训练模型,只需查看Malaya/pretrained-model
ALBERT,用于语言表示的自监督学习的 Lite BERT,https://arxiv.org/abs/1909.11942
ALXLNET,一个 Lite XLNET,没有纸。
BERT,用于语言理解的深度双向转换器的预训练,https://arxiv.org/abs/1810.04805
BigBird,更长序列的变形金刚,https: //arxiv.org/abs/2007.14062
ELECTRA,预训练文本编码器作为鉴别器而不是生成器,https://arxiv.org/abs/2003.10555
GPT2,语言模型是无监督的多任务学习者,https://github.com/openai/gpt-2
LM-Transformer,与 T5 完全一样,但使用 Tensor2Tensor 代替 Mesh Tensorflow,稍作调整,没有产生纸张。
PEGASUS,用提取的间隔句进行抽象摘要的预训练,https://arxiv.org/abs/1912.08777
T5,使用统一的文本到文本转换器探索迁移学习的极限,https://arxiv.org/abs/1910.10683
TinyBERT,为自然语言理解提取 BERT,https: //arxiv.org/abs/1909.10351
Word2Vec,向量空间中词表示的有效估计,https: //arxiv.org/abs/1301.3781
XLNET,用于语言理解的广义自回归预训练,https: //arxiv.org/abs/1906.08237
FNet ,FNet:使用傅里叶变换混合令牌,https : //arxiv.org/abs/2105.03824
Fastformer,Fastformer:加法注意力可以满足您的所有需求,https ://arxiv.org/abs/2108.09084
参考
如果您使用我们的软件进行研究,请引用:
@misc{Malaya, Natural-Language-Toolkit library for bahasa Malaysia, powered by Deep Learning Tensorflow, author = {Husein, Zolkepli}, title = {Malaya}, year = {2018}, publisher = {GitHub}, journal = {GitHub repository}, howpublished = {\url{https://github.com/huseinzol05/malaya}} }
致谢
感谢KeyReply赞助私有云来训练马来亚模型,没有它,这个库将完全崩溃。
此外,感谢Tensorflow Research Cloud免费访问 TPU。
贡献
感谢您贡献这个库,真的很有帮助。请随时与我联系以向我提出任何建议或想贡献其他形式的表格,我们接受一切,而不仅仅是代码!