我正在尝试在马达加斯加(我的母语)创建一个标记语料库。我按照文档Python文本处理和自然语言处理和页面https://www.nltk.org/book/ch05.html中的说明进行操作。我已经设法创建了自己的词性标注集,它基于通用的词性标注集和一个带标记的语料库。这是我的代码:
import os, os.path
path = os.path.expanduser('D:/Mes documents/MY_POS_tagger/nltk_data')
if not os.path.exists(path):
os.mkdir(path)
print("OS path done :%s"%os.path.exists(path))
import nltk.data
nltk.data.path.append('D:/Mes documents/MY_POS_tagger/nltk_data')
print("NLTK data path done:%s"%(path in nltk.data.path))
#read a POSfile
import nltk
from nltk.corpus.reader import TaggedCorpusReader
from nltk.tag import UnigramTagger
#there's only one document malagasy.pos, it's there where my tagged corpora.
reader = TaggedCorpusReader('D:/Mes documents/MY_POS_tagger/nltk_data/corpora/cookbook', r'.*\.pos')
train_sents=reader.tagged_sents()
tagger=UnigramTagger(train_sents)
#dago.txt contain just sentences without tag, i just wanted to test if the tag i assign on the POS file will work
text=(nltk.data.load('corpora/cookbook/dago.txt', format='raw'))
text_tokenized=nltk.word_tokenize(text)
print tagger.tag(text_tokenized)
我有这个结果:
OS path done :True
NLTK data path done:True
[('Matory', u'VB'), ('ny', None), ('alika', u'NN')]
所以我可以看到它的工作,但我在上面的文档中读到,我必须训练我的标记器。所以我问是否有人可以建议我如何做到这一点,因为我读了我需要挑选一个训练有素的标签,并训练和组合Ngram标签,但我不明白泡菜的意思或做法。我不知道我现在正在做的是使用NLTK创建和利用标记语料库的正确途径。谢谢
我需要挑选一个训练有素的标签,并训练和组合Ngram标签,但我不明白泡菜的意思或做法
根据你的问题的这一部分,Pickle是Python中的一个库,它允许从硬盘上转储和加载二进制数据,与你选择的任何python对象相关。
信息在这里:https://docs.python.org/3/library/pickle.html
然而,你被建议做的是采用预先训练好的标记器,它可能属于另一种语言,并添加从你已经建立的马达加斯加语的标记语料库中提取的ngrams。但是,如果您使用自己的语言拥有足够大的标记文档语料库,那么对于您自己和NLP社区来说,开发一个特定于马达加斯加语的标记器可能更有用。经过快速研究后,我在互联网上找不到任何东西,因此准备一个是有用的。