使用NLTK创建和利用标记的语料库

问题描述 投票:0回答:1

我正在尝试在马达加斯加(我的母语)创建一个标记语料库。我按照文档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创建和利用标记语料库的正确途径。谢谢

python nltk corpus pos-tagger
1个回答
1
投票

我需要挑选一个训练有素的标签,并训练和组合Ngram标签,但我不明白泡菜的意思或做法

根据你的问题的这一部分,Pickle是Python中的一个库,它允许从硬盘上转储和加载二进制数据,与你选择的任何python对象相关。

信息在这里:https://docs.python.org/3/library/pickle.html

然而,你被建议做的是采用预先训练好的标记器,它可能属于另一种语言,并添加从你已经建立的马达加斯加语的标记语料库中提取的ngrams。但是,如果您使用自己的语言拥有足够大的标记文档语料库,那么对于您自己和NLP社区来说,开发一个特定于马达加斯加语的标记器可能更有用。经过快速研究后,我在互联网上找不到任何东西,因此准备一个是有用的。

© www.soinside.com 2019 - 2024. All rights reserved.