BNLP是一个面向孟加拉语的自然语言处理工具包
bnlp-toolkit的Python项目详细描述
孟加拉语自然语言处理
BNLP是一个面向孟加拉语的自然语言处理工具包。此工具将帮助您tokenize孟加拉语文本,嵌入孟加拉语单词,孟加拉语词性标记,孟加拉语名称实体识别,构造神经模型。在
NB:任何在其论文中引用此工具的研究人员请让我们知道,我们将在此处包含论文链接
安装
PIP安装程序(python3.5、3.6、3.7测试正常)
pip install bnlp_toolkit
本地安装程序
^{pr2}$预训练模型
下载链接
- Bengali SentencePiece
- Bengali Word2Vec
- Bengali FastText
- Bengali GloVe Wordvectors
- Bengali POS Tag model
- Bengali NER model
标记化
- 在
Basic标记器
frombnlpimportBasicTokenizerbasic_tokenizer=BasicTokenizer()raw_text="আমি বাংলায় গান গাই।"tokens=basic_tokenizer.tokenize(raw_text)print(tokens)# output: ["আমি", "বাংলায়", "গান", "গাই", "।"]
在 - 在
NLTK标记化
frombnlpimportNLTKTokenizerbnltk=NLTKTokenizer()text="আমি ভাত খাই। সে বাজারে যায়। তিনি কি সত্যিই ভালো মানুষ?"word_tokens=bnltk.word_tokenize(text)sentence_tokens=bnltk.sentence_tokenize(text)print(word_tokens)print(sentence_tokens)# output# word_token: ["আমি", "ভাত", "খাই", "।", "সে", "বাজারে", "যায়", "।", "তিনি", "কি", "সত্যিই", "ভালো", "মানুষ", "?"]# sentence_token: ["আমি ভাত খাই।", "সে বাজারে যায়।", "তিনি কি সত্যিই ভালো মানুষ?"]
在 - 在
Bengali SentencePiece标记化
- 使用训练模型的标记化
frombnlpimportSentencepieceTokenizerbsp=SentencepieceTokenizer()model_path="./model/bn_spm.model"input_text="আমি ভাত খাই। সে বাজারে যায়।"tokens=bsp.tokenize(model_path,input_text)print(tokens)text2id=bsp.text2id(model_path,input_text)print(text2id)id2text=bsp.id2text(model_path,text2id)print(id2text)
在 - 训练片段
frombnlpimportSentencepieceTokenizerbsp=SentencepieceTokenizer()data="test.txt"model_prefix="test"vocab_size=5bsp.train(data,model_prefix,vocab_size)
在
- 使用训练模型的标记化
文字嵌入
- 在
孟加拉语Word2Vec
- 在
利用预应变模型生成矢量
frombnlpimportBengaliWord2Vecbwv=BengaliWord2Vec()model_path="bengali_word2vec.model"word='আমার'vector=bwv.generate_word_vector(model_path,word)print(vector.shape)print(vector)
在 - 在
用预训练模型找出最相似的词
frombnlpimportBengaliWord2Vecbwv=BengaliWord2Vec()model_path="bengali_word2vec.model"word='গ্রাম'similar=bwv.most_similar(model_path,word)print(similar)
在 - 在
用你自己的数据训练孟加拉语Word2Vec
frombnlpimportBengaliWord2Vecbwv=BengaliWord2Vec()data_file="sample.txt"model_name="test_model.model"vector_name="test_vector.vector"bwv.train(data_file,model_name,vector_name)
在
- 在
- 在
{str{1孟加拉文
要使用
fasttext
,您需要通过pip install fasttext==0.9.2
手动安装fasttext注意:
fasttext
不能在windows
中工作,它只在linux
中工作- 在
利用预训练模型生成向量
frombnlp.embedding.fasttextimportBengaliFasttextbft=BengaliFasttext()word="গ্রাম"model_path="bengali_fasttext_wiki.bin"word_vector=bft.generate_word_vector(model_path,word)print(word_vector.shape)print(word_vector)
在 - 在
孟加拉语快速文本模型
frombnlp.embedding.fasttextimportBengaliFasttextbft=BengaliFasttext()data="sample.txt"model_name="saved_model.bin"epoch=50bft.train(data,model_name,epoch)
在
- 在
- 在
孟加拉语手套词向量
我们用孟加拉语数据(wiki+新闻文章)训练手套模型,并发布孟加拉手套词向量 您可以下载它并将其用于不同的机器学习目的。在
frombnlpimportBengaliGloveglove_path="bn_glove.39M.100d.txt"word="গ্রাম"bng=BengaliGlove()res=bng.closest_word(glove_path,word)print(res)vec=bng.word2vec(glove_path,word)print(vec)
在
孟加拉语词性标注
- 在
Bengali CRF POS Tagging
- 在
使用预训练模型查找Pos标签
frombnlpimportPOSbn_pos=POS()model_path="model/bn_pos.pkl"text="আমি ভাত খাই।"res=bn_pos.tag(model_path,text)print(res)# [('আমি', 'PPR'), ('ভাত', 'NC'), ('খাই', 'VM'), ('।', 'PU')]
在 - 在
列车POS标签模型
frombnlpimportPOSbn_pos=POS()model_name="pos_model.pkl"tagged_sentences=[[('রপ্তানি','JJ'),('দ্রব্য','NC'),('-','PU'),('তাজা','JJ'),('ও','CCD'),('শুকনা','JJ'),('ফল','NC'),(',','PU'),('আফিম','NC'),(',','PU'),('পশুচর্ম','NC'),('ও','CCD'),('পশম','NC'),('এবং','CCD'),('কার্পেট','NC'),('৷','PU')],[('মাটি','NC'),('থেকে','PP'),('বড়জোর','JQ'),('চার','JQ'),('পাঁচ','JQ'),('ফুট','CCL'),('উঁচু','JJ'),('হবে','VM'),('৷','PU')]]bn_pos.train(model_name,tagged_sentences)
在
- 在
孟加拉纳尔
- 在
孟加拉语CRF NER
- 在
使用预训练模型查找NER标记
frombnlpimportNERbn_ner=NER()model_path="model/bn_ner.pkl"text="সে ঢাকায় থাকে।"result=bn_ner.tag(model_path,text)print(result)# [('সে', 'O'), ('ঢাকায়', 'S-LOC'), ('থাকে', 'O')]
在 - 在
列车内线标签模型
frombnlpimportNERbn_ner=NER()model_name="ner_model.pkl"tagged_sentences=[[('ত্রাণ','O'),('ও','O'),('সমাজকল্যাণ','O'),('সম্পাদক','S-PER'),('সুজিত','B-PER'),('রায়','I-PER'),('নন্দী','E-PER'),('প্রমুখ','O'),('সংবাদ','O'),('সম্মেলনে','O'),('উপস্থিত','O'),('ছিলেন','O')],[('ত্রাণ','O'),('ও','O'),('সমাজকল্যাণ','O'),('সম্পাদক','S-PER'),('সুজিত','B-PER'),('রায়','I-PER'),('নন্দী','E-PER'),('প্রমুখ','O'),('সংবাদ','O'),('সম্মেলনে','O'),('উপস্থিত','O'),('ছিলেন','O')],[('ত্রাণ','O'),('ও','O'),('সমাজকল্যাণ','O'),('সম্পাদক','S-PER'),('সুজিত','B-PER'),('রায়','I-PER'),('নন্দী','E-PER'),('প্রমুখ','O'),('সংবাদ','O'),('সম্মেলনে','O'),('উপস্থিত','O'),('ছিলেন','O')]]bn_ner.train(model_name,tagged_sentences)
在
- 在
孟加拉语语料库类
- 在
停止语和标点符号
frombnlp.corpusimportstopwords,punctuationsstopwords=stopwords()print(stopwords)print(punctuations)
在 - 在
从文本中删除非索引字
frombnlp.corpusimportstopwordsfrombnlp.corpus.utilimportremove_stopwordsstopwords=stopwords()raw_text='আমি ভাত খাই।'result=remove_stopwords(raw_text,stopwords)print(result)# ['ভাত', 'খাই', '।']
在
- 项目
标签: